Estoy seguro de que se han dado respuestas similares en otro lugar, pero no importa lo que haya intentado, no puedo optimizar esta consulta.
Detalles: TableA tiene 3.5 millones de registros. TableB tenía 57000 registros, pero los he reducido a 170 basados en la categoría de datos.
Necesito devolver qué características en tableB intersectan con cada registro individual en tableA en una sola cadena.
Update a
Set a.[Zone_Codes] = (SELECT SUBSTRING((SELECT '; '+ b.[ZONE_CODE] FROM [TableB] AS b
WHERE a.geometry.STIntersects(b.geometry.MakeValid()) = 1
ORDER BY b.[ZONE_CODE] FOR XML PATH ('')), 2, 1000))
FROM [TableA] AS a
¿Alguna idea de cómo optimizar esto? Todas las tablas tienen índices espaciales. SQL Management Studio 13
--- código modificado eliminado, no se optimizó