SQL中的1=1影响性能吗?
类别:数据库 浏览量:237
时间:2015-1-29 SQL中的1=1影响性能吗?
SQL中的1=1影响性能吗?数据库在进行查询的时候,经常看到有的人使用where 1=1和1=0,1=2等的查询,这样写主要是一些程序员为了拼凑动态的sql语句。
在不定数量查询条件情况下,1=1可以很方便的规范语句。例如一个查询可能有name,age,height,weight约束,也可能没有。
SQL Server中的1=1影响性能吗?
1、查询分析器在代数树优化阶段就把1=1 直接给过滤掉了。这个功能就是查询优化器中所谓的“Constant Folding”。
2、假设查询分析器在代数树优化阶段没有把where 1=1这种情况直接过滤掉。比如语句select * from table where a=1 这个语句,SQL Server估计的行数会是:
a列的选择率*表中采样的总行数
因此,当Where 1=1 and a=1时,结果就变为
1*a列的选择率 *表中采样的总行数=a列的选择率 *表中采样的总行数
因此无论是否有1=1 and,查询分析器都会估计相同的行数,从而拥有同样的执行计划,因此SQL Server中不影响性能。
标签:SQL
您可能感兴趣
- SQL Server中@@ROWCOUNT的用法
- sqlserver数据库技术及应用教程(SQLServer2019 数据库的基本使用之图形化界面操作的实现)
- spark sql常用操作(Spark SQL数据加载和保存实例讲解)
- 深入理解mysql索引(MySQL中冗余和重复索引的区别说明)
- SQL group by分组查询
- mysql是自动commit吗(详解MySQL与Spring的自动提交autocommit)
- 解释mysql慢查询(MySQL Threads_running飙升与慢查询的相关问题解决)
- sqlserver维护计划保存在哪(SQL Server误设置max server memory的处理方法)
- mysql的使用步骤(MySQL infobright的安装步骤)
- SQL charindex怎么用
- SQL SERVER中根据身份证号获取出生日期
- SQL Server中使用order by charindex按指定顺序排序
- mysql中如何设置多个主键(Mysql 增加主键或者修改主键的sql语句操作)
- 查看SQL SERVER中指定数据库所有表的字段信息
- mysql索引的弊端(MySQL 全文索引的原理与缺陷)
- mysql中查询数据合并(Mysql合并结果接横向拼接字段的实现步骤)
- 七夕取消了,牛郎织女没做核酸七夕已经取消(牛郎织女没做核酸七夕已经取消)
- 网友抵制 多地取消 夏日祭 为何惹众怒(网友抵制多地取消)
- 兄弟萌,今年的七夕又取消了 思考 思考(今年的七夕又取消了)
- 七夕取消是什么梗(七夕取消是什么梗)
- 这竟然是捏出来的 20种橡皮泥玩法让你轻松hold住魔娃(这竟然是捏出来的)
- 自制橡皮泥(自制橡皮泥)