【发布时间】:2018-07-30 11:21:32
【问题描述】:
如果我写有什么不同
select * from table where bit_field = 0
或
select * from table where bit_field <> 1
?
更新: 我有一份报告说最好使用“bit_field = 0”版本,因为如果您在字段上有一些索引,请使用第二个选项,“Seek Predicates”有一些问题......它有两个搜索谓词一个 1 ... 或其他东西。 我没有任何例子可以展示。 :( 更改为 = 后,排他锁 (X) 和意向排他锁 (IX) 减少 对此有什么想法吗?
【问题讨论】:
-
如果列的类型是bit,那么没有区别
-
BIT 可以是 1、0 或 NULL & 鉴于所有相等运算符都排除了 NULL,所以没有区别。
-
逻辑上这些没有区别。实际上是there might be.
-
第一个比较清楚。
-
如果性能更好,那么查询优化器设计者可能已经在内部为您完成了
标签: sql sql-server tsql bit