Repetición de condiciones

29/09/2004 - 10:27 por XaviF | Informe spam
Hola!

Supongamos que hacemos una consulta en la que intervienen varias tablas
ligadas por JOINs. Supongamos que todas ellas ligan con una tabla principal.
Supongamos que queremos consultar por la PK de esta tabla principal. Es
cierto que es óptimo incluir en la restricción WHERE las condiciones de la
PK para todas las tablas.

Ejemplo:

SELECT *
FROM TablaPrincipal T
INNER JOIN Tabla1 T1 ON T1.PK = T.PK
INNER JOIN Tabla2 T2 ON T2.PK = T.PK
WHERE T.PK = @PK

es peor que

SELECT *
FROM TablaPrincipal T
INNER JOIN Tabla1 T1 ON T1.PK = T.PK
INNER JOIN Tabla2 T2 ON T2.PK = T.PK
WHERE T.PK = @PK
AND T1.PK = @PK
AND T2.PK = @PK
?

Gracias a todos


Xavi
 

Leer las respuestas

#1 Maxi
29/09/2004 - 15:02 | Informe spam
Hola, peor?? no entiendo porque!! si tienes buenos indices sobre los campos
de los Where no sera tan malo!!

Pero es cierto que si solo buscas por el PK y este ademas es un indice
Cluster sera mucho mas optimo!!

Pero no todo se puede hacer asi, con lo cual lo que debes tener es buenos
indices :-)


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"XaviF" escribió en el mensaje
news:%
Hola!

Supongamos que hacemos una consulta en la que intervienen varias tablas
ligadas por JOINs. Supongamos que todas ellas ligan con una tabla


principal.
Supongamos que queremos consultar por la PK de esta tabla principal. Es
cierto que es óptimo incluir en la restricción WHERE las condiciones de la
PK para todas las tablas.

Ejemplo:

SELECT *
FROM TablaPrincipal T
INNER JOIN Tabla1 T1 ON T1.PK = T.PK
INNER JOIN Tabla2 T2 ON T2.PK = T.PK
WHERE T.PK = @PK

es peor que

SELECT *
FROM TablaPrincipal T
INNER JOIN Tabla1 T1 ON T1.PK = T.PK
INNER JOIN Tabla2 T2 ON T2.PK = T.PK
WHERE T.PK = @PK
AND T1.PK = @PK
AND T2.PK = @PK
?

Gracias a todos


Xavi







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.769 / Virus Database: 516 - Release Date: 24/09/2004

Preguntas similares