位置: 编程技术 - 正文

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语句实现分页效果)

  • 个人所得税退还是不退好
  • 外地预缴的附加税怎么算
  • 转登记纳税人按规定再次登记为一般纳税人后
  • 税款减半征收什么意思
  • 计提利息要计提手续费吗
  • 个税预扣预缴扣除项目有哪些
  • 个人承包工程怎么交个税
  • 为什么租赁只能20年
  • 房屋租赁收入还需要缴纳附加税吗
  • 劳保费用可以开专票吗
  • 营改增转让土地税收政策
  • 企业如何处理劳方与资方的关系
  • 其他应付款借方余额表示什么
  • 发票专用章能刻章吗
  • 哪些记账凭证
  • 初级备考日记
  • 企业所得税税率2022年最新税率表
  • 销售购进材料会计分录
  • 研发成功的产品卖出去怎么做账
  • 技术咨询增值税税率
  • 微软雅黑字体一般用在哪里
  • 房地产企业如何计算土地使用税
  • 出口退税会计分录例题
  • 收到预付款怎么给客户写协议书
  • 简易计税 科目
  • 以前年度损益调整借贷方向
  • 厂区绿化工程计入什么科目
  • 如何解决win7系统不稳定
  • yii框架教程
  • macos ppt软件
  • vue实战项目教程
  • PHP:session_unset()的用法_Session函数
  • linux1970
  • 水培吊兰的养殖周期
  • 个人转让门面的法律规定
  • 在产品按定额成本计价法的特点
  • 企业所得税征收方式有哪些?
  • 消防工程款支付方式
  • 无需本地部署的软件
  • 阿里云 gtm
  • ausearch命令
  • 报销的时候发票金额大于实际报销的金额
  • 农业企业所得税是免税的吗
  • 股东转让股份会退股吗
  • 因质量原因退货和召回的产品,均应按照规定
  • 金蝶软件资产负债表公式设置
  • 织梦安装完要删除哪个文件
  • 财务报表中的应收款项包括哪些
  • 企业电子发票申请流程2023版
  • 进口关税完税价格的计算公式
  • sql server怎么创建约束
  • Sql Server 2005的1433端口打开局域网访问和进行远程连接
  • 应付股利是否影响未分配利润
  • 期末留抵的进项税可以计入成本吗
  • 资产负债表资产按照什么顺序
  • 教育类退费
  • 年报中的认缴出资时间怎么填
  • 职工福利费的好处
  • sql触发器菜鸟教程
  • hyper-v虚拟机无法初始化
  • windows安装在何处
  • windows7中ie浏览器怎么打开
  • agentctl.dll
  • win8系统没有wifi
  • linux测试软件
  • win10预览版21301bug
  • Unity3D游戏开发毕业论文
  • java list转set的方法
  • koa2 koa
  • javascript高级程序设计第三版
  • linux shell脚本攻略(第3版)
  • shell脚本ll
  • Jar mismatch! Fix your dependencies
  • js事件循环过程
  • jquery里的each()是什么函数?你是如何使用他的?
  • springmvc接收json需要配
  • 诊所备案申请表在哪下载
  • 购置税周天上班吗
  • 亳州契税补贴如何领取
  • 北京ca证书下载安装流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设