Ayuda con Indices

23/02/2005 - 04:49 por Fer | Informe spam
Tengo una duda con respecto a los indices. Supongamos que tengo una Tabla
con campo1, campo2, campoN,y esta Tabla tiene dos indices: 1.- por
Campo1, Campo2
2.- por Campo5, Campo8

Que pasa en esta consulta:
Select campo4, campo6
From Tabla
Where campo1= "21"
and Campo12 = "Hola"

Al estar campo1 en el Where y sabiendo que éste forma parte del primer
indice (compuesto), entra por el indice o necesariamente debe esta el campo2
en el Where para que lo tome.

Gracias
Fer
 

Leer las respuestas

#1 Salvador Ramos
23/02/2005 - 09:06 | Informe spam
Hola:

Utiliza el índice (ojo leer la puntualización), no necesitas tener los dos
campos, ya que campo1 es el primero del índice.

Una puntualización importante: en principio utiliza el índice, pero también
dependerá de los valores que haya en esa columna de la tabla, ya que puede
decidir que sea más óptimo no utilizarlo. Por ejemplo, si el 80% de las
filas tienen el valor 21 en esa columna, o si la tabla tiene muy pocas filas
..., considerará más óptimo hacer un table scan (leer toda la tabla).

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Fer" escribió en el mensaje
news:
Tengo una duda con respecto a los indices. Supongamos que tengo una Tabla
con campo1, campo2, campoN,y esta Tabla tiene dos indices: 1.- por
Campo1, Campo2
2.- por Campo5, Campo8

Que pasa en esta consulta:
Select campo4, campo6
From Tabla
Where campo1= "21"
and Campo12 = "Hola"

Al estar campo1 en el Where y sabiendo que éste forma parte del primer
indice (compuesto), entra por el indice o necesariamente debe esta el
campo2
en el Where para que lo tome.

Gracias
Fer


Preguntas similares