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:
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.


Respuesta Responder a este mensaje
#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:
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:
> 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.
>
>


Respuesta Responder a este mensaje
#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:#
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:
> 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:
> > 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.
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida