我们有一个超过两百万行的表,其中所有查询都是使用Column1
和Column2
之间的查找。而且,只会有一个可能的结果。例如...为只有一个匹配的查询编制索引SQL?
Col1 Col2
1 5
6 10
11 15
select * from table1 where 8 between Col1 and Col2
我目前对Col1
和Col2
的唯一聚集索引。到目前为止,我一直无法弄清楚如何进一步调整查询和索引来最小化处理的行。目前的执行计划报告了在查找唯一正确答案时所处理的近0.5和113k行成本。
我可以忽略哪些选项?
按照要求,从当前执行计划的一些细节:
Operation
Clustered Index Seek
Predicate
CONVERT_IMPLICIT(bigint,[@2],0)<=[Col2]
Seek Predicate
Seek Keys[1]: End: Col1 <= Scalar Operator(CONVERT_IMPLICIT(bigint,[@1],0))
将它写为 'select * from table1 where Col1 = < 8 and Col2> = 8' – Vicki
Col1中的步骤总是5吗?如果是这样,那么答案很简单:) –
你有什么样的执行计划?你可以补充说这个问题吗? –