J'essaie de déplacer des routines de géotraitement simples des processus basés sur ESRI vers SQL Server. Je suppose que ce sera beaucoup plus efficace. Pour mon test initial, je travaille sur une routine d'intersection pour associer des données linéaires qui se chevauchent.
Dans ma table WCASING, j'ai 1610 enregistrements. J'essaie d'associer ces boîtiers avec leurs réseaux associés. J'ai ~ 277 000 Mains. J'ai ~ 1600 carters.
J'exécute la requête ci-dessous pour avoir une idée générale du temps qu'il faudra pour trouver des correspondances individuelles. Cette requête a renvoyé 5 intersections valides en 40 secondes.
SELECT Top 5 [WCASING].[OBJECTID] As CasingOBJECTID,
[WPUMPPRESSUREMAIN].[OBJECTID] AS MainObjectID, [WCASING].[Shape]
FROM [dbo].[WPUMPPRESSUREMAIN]
JOIN [WCASING]
ON [WCASING].[Shape].STIntersects([WPUMPPRESSUREMAIN].[Shape]) = 1
Mes questions principales;
Ce processus sera-t-il plus rapide en fonction de l'ordre de recherche?
- Trouver 'A' à l'intérieur de 'B' vs
- Trouver «B» à l'intérieur de «A»
- Le retour initial sur 5 enregistrements de ces ensembles de données est que cela n'a pas d'importance
Est-ce que ce processus sera plus rapide, si je tamponne d'abord pour limiter à un ensemble principal plus petit, puis recherche?
Puis-je utiliser SQL Server Tuning pour travailler avec des requêtes basées sur la géométrie?
SELECT WCASING.OBJECTID AS CasingOBJECTID,
WPUMPPRESSUREMAIN.OBJECTID AS MainObjectID, WCASING.UFID AS UFID,
WPUMPPRESSUREMAIN_IPS.UFID AS MainUFID, WCASING.SHAPE
INTO WCASING_INTDefsV6
FROM WCASING with (index([FDO_ShapeWC]))
INNER JOIN [WPUMPPRESSUREMAIN_IPS] ON
[WPUMPPRESSUREMAIN_IPS].Shape.STIntersects(WCASING.SHAPE) = 1
Cette nouvelle requête a amélioré les définitions.
- Maintenant, les deux tables ont des index spatiaux
- Auparavant, la table de tubage (plus petite) n'avait pas d'index spatial
- Il contenait un index non clusterisé
La requête a également l'instruction with index.
La nouvelle requête a duré 37 minutes. L'ancienne requête prenait 44 minutes.
J'espérais de meilleurs résultats et je continuerai de tester.