У нас есть таблица с более чем двумя миллионами строк, где все запросы против нее будут выполняться с помощью Column1
и Column2
. Кроме того, будет только один возможный результат. Например...
Col1 Col2
1 5
6 10
11 15
select * from table1 where 8 between Col1 and Col2
В настоящее время у меня есть уникальный кластерный индекс на Col1
и Col2
. До сих пор мне не удалось выяснить, как дальше настраивать запрос и индексы, чтобы минимизировать обрабатываемые строки. План выполнения в настоящее время сообщает о стоимости почти 0,5 и 113 тыс. Строк, обрабатываемых при определении правильного ответа.
Какие опции я могу игнорировать?
В соответствии с запросом, некоторые детали из текущего плана выполнения:
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))