Logical Query Processing

SQL Server 2012

Cuando escribimos una consulta en SQL Server pensamos que la misma es ejecutada siguiendo línea por línea la manera en la que la hemos escrito, sin embargo esto no es así.

El orden en que una consulta es escrita no es el orden en como es evaluada por el motor de bases de datos.

SQL Server es un lenguaje del tipo Declarative “english-like” es decir; en este lenguaje, Declarativo significa que se debe definir lo “que” se quiere y no el “como”.

El Standard SQL describe la interpretación lógica de la petición declarativa es decir la parte del “qué”, sin embargo es responsabilidad del motor de base de datos encontrar la manera de procesar físicamente la parte del “cómo” de la solicitud.

Basados en esto observemos la siguiente consulta:

SELECT Apellidos
FROM Personas.Contactos
WHERE Apellidos = 'Pozo';

Revisando la consulta anterior diríamos que se ejecutaría de la siguiente manera:

Primero: SELECIONA todos los Apellidos
Segundo: DE la tabla Personas.Contacto
Tercero: DONDE los Apellidos sean iguales a Pozo;

Sin embargo como hemos dicho, el proceso tiene un orden diferente, primero el motor utiliza la cláusula FROM para verificar la tabla, luego la cláusula WHERE para verificar las columnas y finalmente utiliza la cláusula SELECT para recuperar los datos, es decir, la ejecuta de la siguiente manera:

FROM Personas.Contactos
WHERE Apellidos = 'Pozo'
SELECT Apellidos;

Esto en otras palabras sería: De la tabla Personas.Contactos, donde los apellidos sean Pozo, selecciónalos o muéstralos todos.

Ahora con esto nos surge la siguiente pregunta: ¿Qué sucede con las demás cláusulas que conforman las sentencias, cuál es el orden de ejecución?

Para responder a esta pregunta observemos la siguiente imagen: En ella podemos observar en el lado izquierdo el orden de como se escriben las consultas y en el lado derecho el como se ejecutan.

Logical Query Processing

Como siempre ante cualquier duda o pregunta no dejen de contactarme que con gusto les responderé.

Saludos!

Roberto Pozo

Etiquetas: , , , , , , , , , , , , , , , , , , ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: