Los índices pueden utilizarse para acelerar la evaluación de ciertos tipos
de cláusulas de filtro. Si bien todas las cláusulas de filtro reducen el
conjunto de resultados final de una consulta, algunas de ellas también ayudan a
reducir la cantidad de datos que se deben explorar.
Un argumento de búsqueda (SARG) limita una búsqueda porque especifica la
coincidencia exacta, un intervalo de valores o una conjunción de dos o más
elementos combinados con AND. Presenta uno de los siguientes formatos:
·
Columna operador <constante o variable>
·
<constante o variable> operador Columna
Entre los operadores SARG se incluyen =, >, <, >=, <=, IN,
BETWEEN y, en ocasiones, LIKE (en casos de coincidencia de prefijos, tales como
LIKE 'John%'). Un argumento SARG puede incluir varias condiciones combinadas
con un AND. Los argumentos SARG pueden ser consultas que coinciden con un valor
específico, por ejemplo:
·
"Customer ID" = 'ANTON'
·
'Doe' = "Last Name"
Un argumento SARG también pueden ser una consulta que coincide con un
intervalo de valores, por ejemplo:
·
"Order Date" > '1/1/2002'
·
"Customer
ID" > 'ABCDE' AND "Customer ID" < 'EDCBA'
·
"Customer
ID" IN ('ANTON', 'AROUT')
Una expresión que no utilice operadores SARG no mejorará el rendimiento
porque el procesador de consultas de SQL Server debe evaluar cada fila para
determinar si cumple la cláusula de filtro. Por consiguiente, un índice no es
de utilidad en expresiones que no utilizan operadores SARG. Entre los
operadores que no son SARG se incluyen NOT, <>, NOT EXISTS, NOT IN, NOT
LIKE y funciones intrínsecas.
Se recomienda la lectura:
En definitiva, puede mejorar el rendimiento de la aplicación SQL Server, optimizando
las consultas que utiliza. En los próximos días publicaré en mi blog (este
mismo) otras técnicas fáciles que pueden aplicarse para optimizar el
rendimiento de las consultas.
A puntes y recopilaciones de Norman M. Pardell
Puedes consultarme, si deseas cualquier aclaración, pregunta o sugerencia en: Contacto, contestaré tan pronto como me sea posible.