Bonjour,
J'ai une requête SQL qui est beaucoup trop longue à l'execution.
plus de 5 mn !!.
En fait, je cherche à retourner le voisinage proche des maisons en comparant leurs coordonnées.
On considére proche, les maisons qui se trouvent à plus ou moins 100 mètres les unes des autres.
Voici le requête :
La partie qui pose à priori problème, est celle en rouge dans le code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 SELECT DISTINCT S1.KEY, S1.nom_maison, S1.code_maison, S1.code_empl, S1.X, S1.Y, null groupe_0, S1.code_n, T.ABBREV type FROM maison S1, maison S2, no N, type T WHERE S1.key <> S2.key AND S1.x > (S2.x-100) AND S1.x < (S2.x+100) AND S1.y > (S2.y-100) AND S1.y < (S2.y+100) AND S1.code_n <> S2.code_n AND S1.code_n = N.nod_n AND N.typ_key = T.typ_key AND N.typ_key IN (1, 2, 6, 37, 114);
J'avoue que j'accepterais bien un peu d'aide.
Partager