COMPILADOR SQL SERVER !!!

23/09/2004 - 01:14 por Luis J. | Informe spam
Hola a todos,

Quisiera saber la forma en que opera el compilador de SQL SERVER, cuando
evalua en el momento de ejecución una consulta. Esto hace referencia
específicamente al FROM y al WHERE.

Muchas gracias por su colaboración.

LuisJaimeG.

Preguntas similare

Leer las respuestas

#1 Adrian D. Garcia
23/09/2004 - 07:14 | Informe spam
Esta es una gran simplificacion pero sirve como guia:
Cuando el motor recibe una consulta realiza los siguientes pasos:,
1) parsearla para ver si sintacticamente es correcta.
2) determinar si los objetos y columnas a los que hace referencia existen,
si ademas existen los permisos necesarios para realizar las operaciones y
ver si esas operaciones tienen sentidos sobre los objetos a los cuales hace
referencia.
3) Normalizar la instruccion.
4) Analiza si es una sentencia sencilla y puede determinar un plan de
ejecucion adecuado (por ejemplo acceder a una fila por una clave primaria)
sino sigue adelante
5) Analiza los indices de las tablas a los cuales hace referencia revisando
los SARG en la clausula WHERE (S: search ARG: arguments) Los SARG son
condiciones que normalmente no generan table scans.
6) Analiza las estadisticas referidas a los indices
7) Analiza los JOINS y determina cual es el orden de resolucion y algoritmo
para resolverlos.




Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Luis J." wrote in message
news:
Mostrar la cita
#2 Luis J.
23/09/2004 - 23:19 | Informe spam
Gracias Adrian,

Sin embargo me queda la inquietud de la forma en que evalua el FROM, por
ejemplo, de abajo para arriba o al contrario; y respecto al WHERE si es de
abajo para arriba o viceversa, o de izquierda a derecha o viceversa.

Gracias.

LuisJaimeG.


"Adrian D. Garcia" escribió en el mensaje
news:
Mostrar la cita
hace
Mostrar la cita
revisando
Mostrar la cita
algoritmo
Mostrar la cita
#3 Javier Loria
26/09/2004 - 21:18 | Informe spam
Hola:
El proceso de normalizacion que describe Adrian como paso 3, hace que no
importe el Orden del FROM ni tampoco del WHERE. Por ultimo el orden que
aplicara sera de acuerdo a lo que sea mas efectivo para el servidor, no
importa el orden en que lo pongas.

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Luis J." wrote in message
news:#
Mostrar la cita
existen,
Mostrar la cita
y
Mostrar la cita
primaria)
Mostrar la cita
cuando
Mostrar la cita
Ads by Google
Search Busqueda sugerida