![]() |
1
3
在您解决这个数据类型优先级问题之前,我不会为索引操心:这是在OR子句问题之上的。
我会把莱姆斯的答案倒过来
在注释后编辑:不能将@p2的使用与常量字符串的使用进行比较。 |
![]() |
2
0
首先,我决定了第二个选项,也就是说,我创建了两个索引:
我测试了两个查询:
执行此查询时,我得到以下查询计划(
所以似乎两个索引都被使用(“索引查找”)。
我测试的第二个查询是使用联接来避免OR运算符(请参阅我问题中的“Edit”):
此查询具有以下查询计划:
再次使用两个索引(“索引查找”)。
注意:对于这两个查询,我声明@p2的长度无关紧要:使用varchar(8)或varchar(20)或varchar(30)可以得到相同的结果和查询计划。 在这些结果之后,我将继续使用OR操作符而不是UNION,因为两个查询都使用索引,但是第一个查询更快。 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 4 月前 |
![]() |
Marc Guillot · 记录值时忽略冲突 4 月前 |
![]() |
Fachry Dzaky · 正确使用ROW_NUMBER 5 月前 |
![]() |
TriumphTruth · 从满足特定条件的数据集中选择1行 5 月前 |