Tengo el field_1
de mi Table_1
que debe tener la distancia mínima entre la geometría de mi Table_1
y cualquier geometría de mi Table_2
. Para ello, he utilizado un CROSS JOIN
(Producto cartesiano completo) entre Table_1
y Table_2
. También he utilizado el operador KNN <->
.
Mi problema es que tardó más de 3 horas en ejecutarse y decidí abortar la consulta mientras se estaba ejecutando.
Table_1
a 56230
entidades.
Table_2
a 234843
entidades.
Aquí está mi código:
UPDATE Table_1
SET field_1 = list.distance
FROM(
SELECT T1.gid AS name, MIN(T1.geom <-> T2.geom) AS distance
FROM Table_1 AS T1
CROSS JOIN Table_2 AS T2
GROUP BY T1.gid
ORDER BY T1.gid
) AS list
WHERE Table_1.gid = list.name;
¿Tienes alguna idea con una consulta más ligera que pueda ejecutar esto mucho más rápido? Ya he creado índices espaciales.