¿Indización de SQL para consulta entre con solo una coincidencia?
Tenemos una tabla con más de dos millones de filas donde todas las consultas serán una búsqueda Entre usandoColumn1
yColumn2
. Además, solo habrá un resultado posible. Por ejemplo...
Col1 Col2
1 5
6 10
11 15
select * from table1 where 8 between Col1 and Col2
Actualmente tengo un índice agrupado único enCol1
yCol2
. Hasta ahora no he podido averiguar cómo ajustar la consulta y los índices para minimizar las filas manejadas. El plan de ejecución actualmente informa el costo de casi 0.5 y 113k filas manejadas al ubicar la única respuesta correcta.
¿Qué opciones puedo tener en cuenta?
Según lo solicitado, algunos detalles del plan de ejecución actual:
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))