位置: 编程技术 - 正文

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

  • 购买免税产品的app
  • 滴滴电子普通发票怎么抵扣
  • 代第三方收取的款项作为什么处理
  • 生产成本明细科目是材料还是产品
  • 汽车申请报废了交强险能退吗
  • 人工费用的核算例题
  • 实收资本何时交税
  • 电子元器件可以带上飞机吗
  • 汇算清缴所得税补缴怎么处理
  • 境外签署合同的效力
  • 工会签约有什么好处
  • 购买材料产生的运杂费怎么做分录
  • 主营业务收入计入什么明细账
  • 在建工程转固定资产的条件
  • 住宿费进项发票账务处理
  • 技术服务费可以计入研发费用吗
  • 商标的费用能抵扣吗
  • 再生资源税率多少合理
  • 外购机器设备
  • 轮胎计入什么会计科目
  • 发票作废时间有多长
  • 实际缴纳的增值税税额怎么算
  • 企业的利润分配顺序
  • 带息票据贴现金额怎么算
  • 跨区域个人所得税延期情况说明
  • 保证金计入哪个会计科目
  • 第二季度的利润表报错了,怎么重新报
  • 买卖交什么税
  • 取得海运费发票怎么入账
  • 资产置换税务处理案例
  • 怎么计算房产税率
  • mac双系统怎么删除win系统
  • 企业在运行过程中会遇到哪些法律问题
  • 咨询服务费怎么报印花税
  • wordpress 中文版和国际版区别
  • 出口货物视同内销征税的会计核算
  • 酒店没有营业执照可以举报吗?
  • 支付货款怎么做凭证
  • 出口免退增值税计算公式
  • php时间不对
  • 附有退回条件的销售商
  • 【手撕Transformer】Transformer输入输出细节以及代码实现(pytorch)
  • 城市维护建设税是什么意思
  • 玩转mongodb4.0从入门到实践
  • 假退库会计分录
  • 新版个税申报系统查询
  • 一条sql更新多条记录
  • sql server 内存管理
  • 固定资产盘盈为什么计入管理费用
  • 虚开发票的三种情形是?
  • 普通的收据可以入账吗
  • 待处理财产损溢借方是增还是减
  • 发票一直没验旧会有什么影响
  • 阶段性减免社保费政策期限延长
  • 应付利息属于什么负债
  • 工程预付款计入什么科目
  • 网络销售还可以叫什么
  • 公司对员工罚款怎么处理
  • 涉及销售费用如何计算
  • 收到车辆购置税发票怎么做账
  • 银行日记账的登记依据有哪些
  • 如何冲减费用做账
  • 事业单位收入是再分配吗
  • 农业生态有限公司成立条件
  • 增值税专用发票的税率是多少啊
  • 安装Win8 64位旗舰版系统提示“windows无法安装到这个磁盘”的故障分析及解决方法
  • onionwormimmune.exe是什么
  • 如何改进个人工作作风
  • qt底层绘图引擎
  • 网页css加载失败
  • Unity3D Vuforia Android 相机调焦
  • js基础
  • 代建工程如何缴纳增值税
  • 河南省医保网上报销流程
  • 海关编码更新
  • 自建房交契税需要什么
  • 国家税务总局在哪
  • 开增值税发票没有销售合同也要交印花税吗
  • 耕地占用税减免支持项目发展
  • 报税卡丢了要怎么处理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设