位置: 编程技术 - 正文

Cont()与Where().Count()有时性能差别如此之大!

编辑:rootadmin
想起我之前在此列表中加入了一个字段,用于方便提示管理员公司的产品列表是否有修改之类的状态字段,于是可以断定是加了此字段的原因。 首先,先看看我之前是如何写这个提示状态字段的,实体中加入ContentStatus,然后直接在Linq语句中Select 实体对象中加入ContentStatus=Product_Maintain.Count(C => C.CompanyID == company.ID && C.IsDeleted == 0 && (C.AuditStatus == 0 || C.AuditStatus == 4))>0?"产品有更新":""。这时我想应该是加入三元运算,linq在转Sql时,产生过多的,Case,when ,then语句,三元运算增加了判断会影响查询性能,于是我去掉后,再运行查看页面,仍然很慢,感觉不出快了多少。 这时,我想起了LinqPad,看看到底转换生成了怎样的Sql语句。运用Count(条件)生成Sql代码如下: 这时我发现一个很简单的Count的Sql 语句,linq转换后变得如此复杂,我直接在sql server中运行此代码,发现查询还是很慢,于是我直接把ContentStatus=Product_Maintain.Where(C => C.CompanyID == company.ID && C.IsDeleted == 0 && (C.AuditStatus == 0 || C.AuditStatus == 4)).Count()生成Sql语句为: 代码 发现运行速度那是快了一个数量级啊! 后台列表查询结果速度大大提升有图为证(声明:以下图都为项目中截图,不是简单的单表查询,还连了用户表,详细表等数量也都挺大的):

推荐整理分享Cont()与Where().Count()有时性能差别如此之大!,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

Cont()与Where().Count()有时性能差别如此之大!

图1为Count结果,用了秒,哇塞!

图2为Where(条件).Count()结果,同样的数据只用了4秒钟,差了倍!

然后为了取值方面我还是加入三元运算,ContentStatus=Product_Maintain.Where(C => C.CompanyID == company.ID && C.IsDeleted == 0 && (C.AuditStatus == 0 || C.AuditStatus == 4)).Count()>0?"产品有更新":""。结果如下:

真的是Count()与 Where()区别,不可能这么大差距吧?于是我单写 Product_Maintain.Where(C => C.IsDeleted == 0 && (C.AuditStatus == 0 || C.AuditStatus == 4)).Count() 与 Product_Maintain.Count(C => C.IsDeleted == 0 && (C.AuditStatus == 0 || C.AuditStatus == 4)) 发现速度差不多,生成的代码是一样的。 原来是我如果在Select中取某表的数量并且条件中使用了之前from后的某个变量时,这时用Count(条件)和Where(条件).Count()产生代码才会不同,查询速度才会出现数量级的差别。 代码 与 否则,Count()与Where().Count()生成的SQL语句是相同的,效率也一样。 总结到此,望各位看官以后要注意!本人入园两年来,第一发在首页,请各位看官不吝赐教! 谢谢各位看官的指点,声明下以上查询图都LinqPad查询结果截图。至于为啥4秒左右为LinqPad查询时间,Linq生成Sql语句在Sql Server中执行不到1秒,以下截图作解释:

用sql语句实现分离和附加数据库的方法 对于用ManageStudio自己看着界面操作就可以应付了。分离数据库:对于用存储过程来分离数据库,如果发现无法终止用户链接,可以使用ALTERDATABASE命令,

SQL高级应用之使用SQL查询Excel表格数据的方法 execsp_configure'showadvancedoptions',1reconfigureexecsp_configure'AdHocDistributedQueries',1reconfigureSELECT*FROMOPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','DataSource=E:HaierWebMyWebDocabc.xls;Ex

分享网站群发站内信数据库表设计 站内信不同于电子邮件,电子邮件通过专门的邮件服务器发送、保存。而站内信是系统内的消息,说白了,站内信的实现,就是通过数据库插入记录来

标签: Cont()与Where().Count()有时性能差别如此之大!

本文链接地址:https://www.jiuchutong.com/biancheng/349801.html 转载请保留说明!

上一篇:SQL2000 全文索引完全图解(sql中索引怎么使用)

下一篇:用sql语句实现分离和附加数据库的方法(用sql语句实现分页效果)

  • 农产品减免税政策最新
  • 增值税分录及账务处理如何做?
  • 视同销售发放福利的会计分录
  • 销售赠送赠品会计处理
  • 商业承兑汇票贴现率
  • 其他业务收入在借方表示什么
  • 软件公司主营业务是什么
  • 劳务分包和劳务外包
  • 土地使用费怎么申报
  • 小规模纳税人开了3%的专票还能享受1%
  • 赠送产品能直接用吗
  • 工程外出经营流程
  • 由于生产工艺改进引起建筑物设备陈旧
  • 公司成本可以抵扣税吗
  • 金蝶软件开发服务费入什么科目?
  • 福利费不交个人所得税会怎么样
  • 公司不收员工的个人所得税怎么处理?
  • 小规模纳税人一年不超过多少万
  • 如何能减免个人所得税
  • 盐酸编号
  • 增值税专用发票验票
  • 金税盘不能清卡是啥原因
  • 企业所得税纳税申报表A类
  • 增值税更正申报表需要逐月更正吗
  • 滴滴行程单修改后是否能查
  • 代开票的时候扣了城建税,申报的时候还需要填写吗?
  • 如何理解增值税的三种类型?它们的区别是什么?
  • 企业所得税的计算公式及实例
  • 企业所得税只能抵扣吗
  • powershell不显示用户名
  • 小规模本月应交增值税次月交可以不计提吗
  • 结转工资结算中各种代扣款项
  • 小型微利企业所得税率
  • 冲减坏账准备和计提坏账准备
  • 人力资源服务收入计入什么科目
  • win11怎么添加字体到个性化
  • 胆固醇为什么会高
  • 自制原始凭证包括哪些凭证
  • 企业销售货物收到价款5000元这笔经济业务属于
  • 巴伐利亚州地图
  • php单例模式应用场景
  • 税收变动作用
  • 税率变更为13%的文件
  • 机票的退票费可以开具发票吗
  • AI - stable-diffusion(AI绘画)的搭建与使用
  • 人工智能该如何规划软件工程师岗位
  • setdo指令
  • 进口货物财务处理
  • php使用while循环计算1到100的和
  • 生活服务业纳税义务发生时间
  • 不是企业职工能否挂靠企业交社保
  • 资产负债表和利润表的勾稽关系
  • 公司赠送客户的产品怎么核算
  • 外包员工食堂怎么做账
  • 手机上动态调试apk
  • 帝国cms相关文章调用
  • 总资产报酬率的公式
  • 内部审计主要目的
  • 营业收入的核算方式有哪些
  • 公司交的物业费计入什么会计科目
  • 差额征税问题
  • 厂房监理要点
  • 劳务派遣公司主营业务成本是什么
  • 母猪生小猪会计分录
  • 一年以内到期的长期借款属于
  • 挂靠工程项目预交税金的会计分录如何做?
  • 融资租赁具体操作流程
  • 固定资产一次性扣除账务处理
  • sql server中千万数量级分页存储过程代码
  • 使用筷子就餐会不会传染乙肝病毒
  • 让windows server 2003 32位支持8G内存大内存
  • 系统维护的主要内容有哪些
  • windows8怎么关闭广告弹窗
  • linux中安装软件可使用哪些方式
  • 简单的分享一下
  • 改变图片透明度怎么调
  • 简述javascript的主要特点
  • jquery返回顶部
  • 公司开票限额怎么增加
  • 开电影院有哪些要求
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设