Orden de Columnas y Joins

06/05/2004 - 16:08 por EL Fenrir | Informe spam
Buenos Días:

Me gustaría saber si tiene algo que ver el orden que
colocas en las columnas y la posibilidad de un error o
bajo nivel de rendimiento cuando se hace un join. Es decir
tengo unas tablas de ejemplo

Tabla1 (Col1, Col2, Col3, Col4) -- PK(Col1, Col2, Col3)
Tabla2 (Col1, Col3, Col2, Col6, Col8)

Se puede ver que el orden de las columnas Col2 y Col3 han
cambiado su orden... esto afectara de alguna manera su
manejo...cuando hago un join por ejemplo...

Gracias

Saludos a Todo
 

Leer las respuestas

#1 Adrian D. Garcia
06/05/2004 - 17:18 | Informe spam
Hola,

El orden de las columnas de un indice no afecta a la performance de un query
que hace un join sobre ellas utilizandolas a todas ellas. No importa que el
orden en que se refieren a las columnas en la clausula JOIN siempre y cuando
se utilicen siempre las primeras (o todas) columnas de un indice. El motor
de SQL "normaliza" el query antes de ejecutar y define el plan de ejecucion
mas adecuado en funcion de indices, estadisticas de los mismos, JOINs, WHERE
y ORDER BY que esten definidos.
Puedes verificar esto viendo el plan de ejecucion generado de el query que
planteas, incluso prueba luego de cambiar el orden de los joins y veras que
el mismo no cambia.

Lo que si afecta al rendimiento es el tipo de datos de las columnas de los
indices involucrados. Por lo general hay que tratar de no utilizar en
indices columnas de los tipos VARCHAR y CHAR.
Saludos

Adrian D. Garcia
NDSoft
MCSD
"EL Fenrir" escribió en el mensaje
news:939601c43373$a6f4e760$
Buenos Días:

Me gustaría saber si tiene algo que ver el orden que
colocas en las columnas y la posibilidad de un error o
bajo nivel de rendimiento cuando se hace un join. Es decir
tengo unas tablas de ejemplo

Tabla1 (Col1, Col2, Col3, Col4) -- PK(Col1, Col2, Col3)
Tabla2 (Col1, Col3, Col2, Col6, Col8)

Se puede ver que el orden de las columnas Col2 y Col3 han
cambiado su orden... esto afectara de alguna manera su
manejo...cuando hago un join por ejemplo...

Gracias

Saludos a Todo

Preguntas similares