Orden de la consulta SQL para las operaciones y la delegación

El orden de las operaciones para las consultas SQL hace referencia a cómo Spectrum Spatial (o cualquier procesador de consultas que genere un plan de ejecución) resuelve las cláusulas individuales en la consulta.

La delegación es un conjunto de reglas que explica qué partes de una consulta pueden transferirse al proveedor de fuente de datos para que Spectrum Spatial no tenga que hacer todo el procesamiento. Si el proveedor de fuente de datos admite la operación, la consulta se puede delegar, siempre que se adapte a las reglas de delegación.

Cuando se comprende el orden de las operaciones y cómo dicho orden en una consulta afecta la delegación a un proveedor de fuente de datos, puede crear consultas poderosas sin sacrificar el rendimiento.

Una típica consulta SQL se escribe de la siguiente manera:
select city, avg(hhinc) FROM table WHERE state='ny' GROUP BY city ORDER BY city

A continuación se muestra el orden de las operaciones que se produce cuando se evalúa la consulta.

[FROM table] [WHERE state='ny'] [SELECT city, avg(hhinc) GROUP BY city] [ORDER BY city]

Tenga en cuenta que el filtro del estado='ny' antecede a la selección de las filas. Este orden es importante cuando se delega el trabajo al proveedor de fuente de datos.

Por ejemplo, si el proveedor de fuente de datos no admite el operador '=' de la cláusula WHERE, la cláusula SELECT tampoco puede delegarse según las reglas de Spectrum Spatial. En este caso, Spectrum Spatial tendrá que realizar el trabajo.

La mayor parte de las ventajas de la delegación provienen de una cláusula WHERE bien construida. Si la cláusula WHERE no se puede delegar, entonces el resto de la consulta no se puede delegar. Para obtener más información sobre la cláusula WHERE, consulte Reglas de delegación: cláusula WHERE.