sql 查询条件中需要使用 != 情况下的优化
来源:互联网 发布:nginx 泛解析子域名 编辑:程序博客网 时间:2024/05/08 16:39
随手写了段代码:
执行效率很高,整个执行过程是4秒。但要处理另外的情况时,也是随手把代码改成:
join BB_BizObjects HC on HC.Id = HR.ForeignKey join BB_BizObjectValue_String ST on ST.ObjectId = HC.Id and ST.PropertyId = '75ecbb0f-b52c-4d47-8e0d-b360cdc7fa22' and ST.Value = '个人缴费'
执行效率很高,整个执行过程是4秒。但要处理另外的情况时,也是随手把代码改成:
join BB_BizObjects HC on HC.Id = HR.ForeignKey join BB_BizObjectValue_String ST on ST.ObjectId = HC.Id and ST.PropertyId = '75ecbb0f-b52c-4d47-8e0d-b360cdc7fa22' and ST.Value != '个人缴费'
结果就杯具了,运行效率一下子降低数十倍,等了十来分钟才出来结果。。。
然后,把代码改为
join BB_BizObjects HC on HC.Id = HR.ForeignKey where not exists ( select * from BB_BizObjectValue_String where ObjectId = Hc.Id and PropertyId = '75ecbb0f-b52c-4d47-8e0d-b360cdc7fa22' and Value = '个人缴费')
效率又回来了,6秒就执行完成了。
强烈建议大家不要在条件里用!=做运算符,使用exists可以数十倍地提升效率
- sql 查询条件中需要使用 != 情况下的优化
- SQL查询条件优化
- sql 查询中日期条件的优化
- 查询SQL数据库中各数据表的空间使用情况
- 需要优化的sql语句查询
- 在SQL查询语句中,使用条件where 1=2的意义
- 多表多查询条件对SQL Server查询性能的优化
- sql语句中某个字段有值,也有空的情况下做条件
- 什么情况下需要使用的稳压器?
- sql语句中条件查询in、like、=的效率
- SQL中多条件查询的处理,避免使用SQL拼接
- sql的查询条件
- SQL查询优化,注意where条件的顺序
- SQL查询优化,注意where条件的顺序
- Sql或者hql 查询时 需要多条件时可以使用嵌套查询
- 多条件查询使用的SQL查询语句
- 即时报表中查询条件的使用
- Hibernate中Criteria的使用(条件查询)
- 备份 DHCP
- LeetCode: Largest Rectangle in Histogram(直方图最大面积)
- 一种生成排列的简单想法
- java在ACM中的应用(转载)
- 如何判断一个质数
- sql 查询条件中需要使用 != 情况下的优化
- C# 中webBrowser弹出IE窗体时,获取IE窗体的链接地址,然后再从webBrowser中打开
- 一个最简单的Windows应用程序
- MySQL WINDOWS-XP错误: Access denied for user 'root'@'localhost'
- NSRunLoop
- 数的二进制表示——原码、反码、补码
- Big Event in HDU(多重背包或母函数)
- windows dig
- redis 命令