Cuantos indices

08/07/2004 - 20:13 por Ricardo Fernandez | Informe spam
Tengo una tabla que supera el 1/2 millon de registros. Para realizar
consultas a esta tabla e creado 1 indice compuesto:

Nombre Indice Columnas
Identifcacion rubro , mes , estado , codigo

Uso de las columnas en mi consulta:
1) El 60% de mi consulta en el WHERE utilizo las 4 columnas
2) El 10% de mi consulta en el WHERE solo utilizo: rubro + mes + estado
3) El 10% de mi consulta en el WHERE solo utilizo: rubro + mes
4) El 20% de mi consulta en el WHERE mesclo a veces (rubro+mes), otras
(rubro+estado) y otras (rubro+codigo)

Dudas:
1) ¿Debo crear un indice por cada una de ellas ó es suficiente con la que
tengo?
2) ¿Como saber si efectivamente esta haciendo de un indice ó no la consulta?

Gracias amigos...

Preguntas similare

Leer las respuestas

#1 Emilio Boucau
08/07/2004 - 21:20 | Informe spam
Ricardo,

ese índice te será de utilidad para las 3 primeras consultas que indicas. Yo
crearí un índice (o 2 ...) que me sirvieran para las demas consultas y vería
si el impacto en mejora de performance vale la pena el costo de espacio y
actualización adicional que esto implica (que por la cantidad de filas que
decís tiene la tabla, no tendrías que ni darte cuenta).


Saludos !

Emilio Boucau
Buenos Aires - Argentina
http://www.portalsql.com
Respuesta Responder a este mensaje
#2 Ricardo Fernandez
08/07/2004 - 21:54 | Informe spam
Hola Emilio, gracias por la respuesta. Ahora como consecuencia me han
surgido 2 dudas mas q espero tengas la amabilidad de responderme:

1) Si mi indice esta en este orden (rubro,mes,estado,codigo)y yo decido
usar en mi Where solo la columna rubro y codigo, ¿ahi no hace uso del indice
ó de todas maneras si hace uso del indice? ..Si es que NO hace uso del
indice, estaria entendiendo que debo usar las columnas en el where en el
mismo orden que esta declarado el indice

2) Si el indice que tengo (rubro,mes,estado,codigo). contempla y maximiza
las 3 primeras consultas que plantee, entonces ¿que diferencia ubiera
existido si es que ubiera creado 3 indices por separado una para cada
consulta? ...A mi parecer y por la afirmación que hiciste podria decir que
ninguna...ya que el indice compuesto es suficiente para contemplar las 3
primeras consultas...Gracias amigo y disculpa el abuso...

"Emilio Boucau" escribió en el mensaje
news:
Ricardo,

ese índice te será de utilidad para las 3 primeras consultas que indicas.


Yo
crearí un índice (o 2 ...) que me sirvieran para las demas consultas y


vería
si el impacto en mejora de performance vale la pena el costo de espacio y
actualización adicional que esto implica (que por la cantidad de filas que
decís tiene la tabla, no tendrías que ni darte cuenta).


Saludos !

Emilio Boucau
Buenos Aires - Argentina
http://www.portalsql.com


Respuesta Responder a este mensaje
#3 Emilio Boucau
08/07/2004 - 22:46 | Informe spam
Ricardo,

1) entrara por tu índice hasta ubicar elrubro que decis y luego barrera fila
a fila todos ellos para filtrar los que necesita por codigo.
2) si fueran 3 por separado, SQL Server lanzara una busqueda por cada indice
para luego aunara los resultados como corresponda. Esto te daria un poco mas
de 'modularidad', pero un índice por los 3 campos seria un acceso directo.


Saludos !

Emilio Boucau
Buenos Aires - Argentina
http://www.portalsql.com
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida