Indeksowanie SQL dla zapytania między jednym a jednym tylko dopasowaniem?
Mamy tabelę zawierającą ponad dwa miliony wierszy, w których wszystkie zapytania skierowane przeciwko niej będą wyszukiwaniem międzyColumn1
iColumn2
. Ponadto będzie tylko jeden możliwy wynik. Na przykład...
Col1 Col2
1 5
6 10
11 15
select * from table1 where 8 between Col1 and Col2
Obecnie mam unikalny indeks klastrowyCol1
iCol2
. Do tej pory nie byłem w stanie dowiedzieć się, jak dalej dostroić zapytanie i indeksy, aby zminimalizować obsługiwane wiersze. Plan wykonania raportuje obecnie koszt prawie 0,5 i 113 tys. Obsługiwanych wierszy podczas wyszukiwania jedynej poprawnej odpowiedzi.
Jakie opcje mogę pominąć?
Zgodnie z żądaniem, niektóre szczegóły z obecnego planu wykonania:
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))