位置: 编程技术 - 正文

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

  • 房产税税额怎么算
  • 企业如何代员工缴社保
  • 加计抵减不符合怎么办
  • 汇算清缴的费用会计怎么做账
  • 油票发票在报销中怎么开
  • 应收票据贷方余额怎么办
  • 城建税和教育附加税
  • 虚开发票企业所得税怎么补缴税?
  • 现金管理规定有哪些主要内容
  • 代扣代缴手续费返还需要缴纳增值税吗
  • 展会门票费计入什么科目
  • 调低社保基数怎么操作
  • 企业购买小轿车进项税额可以抵扣吗
  • 公司注销取不到采购发票怎么汇算清缴?
  • 低值易耗品摊销什么意思
  • 关于小规模纳税人的说法错误的有
  • 多计提教育费附加怎么调整
  • 分支机构能否核定企业所得税
  • 财务报表第一季度引用的期初数是第四季度还是年报
  • 无形资产研发支出适用于税前加计扣除的政策
  • 货物入库会计分录怎么做
  • win10玩红警卡顿怎么解决
  • win10预安装环境
  • qq登录界面的设计与实现
  • 转账凭证摘要怎么写原材料的
  • 销售商品尚未发出会计分录
  • 资产处置损益和待处理财产损溢区别
  • 生育津贴差额账务处理
  • 简易计税行业
  • 商场返现活动怎么入账
  • 实习生究竟该怎么缴个税?
  • 个体户何去何从
  • 二手车过户需要带什么资料
  • PHP/HTML混写的四种方式总结
  • thinkphp3.0
  • 模式识别与图像处理能做什么
  • dede转zblog
  • 兼职员工的工资怎么发放
  • 对外长期投资会计分录?
  • 固定资产盘盈税务处理政策
  • 房地产开发企业的了解概述
  • 企业进出口贸易
  • 印花税计提怎么做分录
  • 怎么查询mysql sql_mode
  • file文件对象
  • MySQL里Create Index 能否创建主键 Primary Key
  • 期权权利金的计算公式
  • 不交社保的职业
  • 发票抵扣联认证完还有用吗
  • 研发费用账务处理完整版
  • 收到的出口退税款需要并入利润总额吗
  • 已付款未收到发票
  • 小规模纳税人发票怎么开
  • 计费销售额如何计税
  • 小型微利企业所得税100到300
  • linux下安装mysql简单的方法
  • 安装并激活navicat
  • linux中如何配置环境变量
  • explorer.exe是啥意思
  • windows重置网卡cmd
  • 深入解析windows第8版
  • linux nc命令详解
  • win7系统损坏无法开机怎么重装
  • win7系统开机黑屏自检
  • linux不小心删除目录怎么恢复
  • Unity3D Editor类(Inspector) 编写经验总结
  • 网页使用的字体中最具可读性.最易浏览的是
  • 微信小程序tabbar颜色
  • 移动端一般用什么布局
  • ubuntu20.04怎么安装
  • jquery查找方法
  • js中切割字符串
  • 封装是借助什么达到的
  • 安卓手机管家怎么关闭
  • 朝阳区地方税务局官网
  • 重庆投诉平台电话
  • 辽宁税务局代码是多少
  • 广东电子税务局官网登录入口手机版
  • 蜂窝煤利润怎么样
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设