Acerca de diseño de índices y PK....

03/11/2004 - 00:32 por Eusebio | Informe spam
Hola todos,


He visto en una base de datos que la mayoría de las tablas tienen una PK y
un índice conformados exactamente porel mismo conjunto de columnas.

La pregunta es si existe una razón para esto, porque pienso que el índice
podría estar sobrando.

Nota: el índice no está declarado como INIQUE, y en ocasiones la PK es
CLUSTERED

mil gracias.


Eusebio
 

Leer las respuestas

#1 Paulino Padial
03/11/2004 - 00:50 | Informe spam
Cuando creamos una tabla podemos utilizar indices para acelerar las
busquedas en esa tabla, y uno de esos índices puede ser Clustered (solo 1
por tabla).
Si tenemos un indice Clustered las filas de la tabla se almacenan
fisicamente en el orden en el que establece ese indice, y al almacenar la
informacion segun ese indice clustered las consultas que trabajan sobre
rangos de datos ordenados por esa fila o que utilizan clausulas WHERE que
incluyen a ese indice Clustered, son mucho mas rapidas.
Cuando trabajamos con indices Clustered es mejor limitar ese indice a una o
dos columnas porque el resto de indices creados sobre esta tabla contendran
nuestro indice Clustered y acabarian siendo muy grandes y lentos.
Por ello, un razonamiento seria.. que al crear una tabla y declarar una PK,
SQL Server crea el indice con la PK y clustered, porque es el mas eficiente
( para su logica en ese momento). Es decir, el aun no sabe que los campos
que tu has puesto en tu tabla van a ser muy usados, o poco usados,
simplemente sabe, que la tabla va a tener una PK que va a ser unica, y por
lo tanto es el que me mejor ve, para crear como indice, y asi desde el
primer momento aumentar el rendimiento de las consultas sobre esa tabla.


Saludos Cordiales

Paulino Padial Lopez
Microsoft MCSD
Database Administrator
"Eusebio" escribió en el mensaje
news:
Hola todos,


He visto en una base de datos que la mayoría de las tablas tienen una PK y
un índice conformados exactamente porel mismo conjunto de columnas.

La pregunta es si existe una razón para esto, porque pienso que el índice
podría estar sobrando.

Nota: el índice no está declarado como INIQUE, y en ocasiones la PK es
CLUSTERED

mil gracias.


Eusebio




Preguntas similares