Cómo se valoran las operaciones AND

Según las reglas para delegar operaciones AND a la fuente de datos, si la fuente de datos no admite AND, se puede delegar una única operación. Para determinar qué operación delegar, Spectrum Spatial evalúa todas las operaciones en la cláusula WHERE y las clasifica de la más alta a la más baja. La operación con el resultado más alto se delegará a la fuente de datos. Spectrum Spatial procesará las operaciones restantes en el lado del cliente.

El siguiente es el orden de precedencia para delegación:

Operación Ejemplo
Distancia MI_Distance() < 5
Geometría where MI_Intersects(obj, MI_Buffer(MI_Point(10.5,51,’epsg:4326’), 200, ‘mi’, ‘Spherical’, 12))
Envelope_Intersects where obj EnvelopesIntersect MI_Box(-5,42,33,57,'epsg:4326')
Clave MI_Key = 5
Atributos de comparación pop > 10000, city = "Austin"
InList city In ("FL", "OH", "NY")
Es nulo city es nulo
Como city Like "%City"
Entre pop Between 5000 and 50000
Operadores lógicos OR, NOT where NOT MI_Envelope(obj) within MI_Box(-180, -90, 180, 90, 'EPSG:4326')

Spectrum Spatial siempre escogerá delegar una operación espacial frente a una operación no espacial.

Antes del proceso de valoración, Spectrum Spatial convierte la cláusula WHERE en la consulta más eficiente que se podría delegar si la fuente de datos admitiera todo. Spectrum Spatial luego valora las operaciones en esa versión de la cláusula. La cláusula se reconstruye para que coincida con lo que admite la fuente de datos y envía la operación con el resultado más alto a la fuente de datos. Consulte el Ejemplo 2.

En el caso de un resultado igual, que puede darse cuando dos operadores de comparación están en la cláusula WHERE, tendrá prioridad la operación que está más a la izquierda en la cláusula. El encargado de escribir la consulta debe conocer bien los datos como para decidor el orden de las operaciones en una cláusula WHERE. Por ejemplo, si se indexa una columna, esta sería una operación más eficiente para delegar a la fuente de datos en comparación con una columna no indexada. Spectrum Spatial no examina los datos para tomar esta decisión.