Guía y consulta del usuario

Las siguientes reglas sirven para optimizar las consultas espaciales que utilizan predicados espaciales:

Ejemplos de aprovechamiento del índice

La Tabla 4 muestra formas correctas e incorrectas de crear consultas espaciales para aprovechar el índice espacial.


Tabla 4. Reglas para el aprovechamiento del índice
Consulta espacial Regla violada

SELECT *
FROM customers c
WHERE db2gse.ST_Within(c.location,:BayArea)=1

En este ejemplo no se viola ninguna condición.

SELECT *
FROM customers c
WHERE db2gse.ST_Distance(c.location,:SanJose)<10

En este ejemplo no se viola ninguna condición.
SELECT *
FROM customers c
WHERE db2gse.ST_Length(c.location)>10

El predicado se debe utilizar en la cláusula WHERE. (ST_Length es una función espacial, pero no un predicado.)
SELECT *
FROM customers c
WHERE 1=db2gse.ST_Within(c.location,:BayArea)

El predicado debe quedar a la izquierda de la comparación.
SELECT *
FROM customers c
WHERE db2gse.ST_Within(c.location,:BayArea)=2

Las comparaciones de igualdad deben utilizar la constante de entero 1.
SELECT *
FROM customers c
WHERE db2gse.ST_Within(:SanJose,:BayArea)=1

Debe haber una columna espacial que se utilice en el predicado como el destino de la búsqueda y debe haber un índice espacial creado en dicha columna. (SanJose y BayArea no son columnas espaciales y, por lo tanto, no pueden tener asociado un índice espacial. )


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]