Bonjour,

J'ai deux tables dont les RTREE_QUALITY sont autour de 1 (pour info). Je souhaite établir pour chaque enregistrement de ma table S_OUVMAR, les parcelles qui sont comprises, couvertes... par celui-ci.
J'ai donc la requête suivante :
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
SELECT P.GID,                                                                   
     P.GEOMETRY,                                                                 
     P.IDENT,                                                                    
     P."propriet",                                                               
     P."nat_pro",                                                                
     P."parc_par",                                                               
     P."date_acq",                                                               
     P."origine",                                                                
     O.GID,                                                                      
     O.GEOMETRY,                                                                 
     O."identifi",                                                               
     O."numero",                                                                 
     O."designat",                                                               
     O."numero_b"                                                                
FROM A_REIMS.PCI_PARC P, A_REIMS.S_OUVMAR O                                      
 WHERE SDO_RELATE(O.GEOMETRY,P.GEOMETRY,'mask=contains+covers+overlapbdyintersect+equal querytype=WINDOW')='TRUE'
Cette requête s'exécute en 8min sans problème.
Mais ne souhaitant faire un rapport que sur les ouvrages récemment saisis par mes utilisateurs, je souhaite trier et ne ressortir que les ouvrages ayant RM en "designat". J'exécute donc :
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
SELECT P.GID,                                                                   
     P.GEOMETRY,                                                                 
     P.IDENT,                                                                    
     P."propriet",                                                               
     P."nat_pro",                                                                
     P."parc_par",                                                               
     P."date_acq",                                                               
     P."origine",                                                                
     O.GID,                                                                      
     O.GEOMETRY,                                                                 
     O."identifi",                                                               
     O."numero",                                                                 
     O."designat",                                                               
     O."numero_b"                                                                
FROM A_REIMS.PCI_PARC P, A_REIMS.S_OUVMAR O                                      
 WHERE O."designat"='RM' AND SDO_RELATE(O.GEOMETRY,P.GEOMETRY,'mask=contains+covers+overlapbdyintersect+equal querytype=WINDOW')='TRUE'
Sans grand succès. Pas de message d'erreur mais pas de résultat non plus.
J'ai essayé
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
25
26
27
28
29
30
31
32
33
34
35
SELECT O.GID,
       PARC.GID,
       O.GEOMETRY,
       PARC.GEOMETRY,
       SDO_GEOM.SDO_AREA (O.GEOMETRY, 100) / 1000000 "Aire Poste",
       O."numero_b",
       O."identifi",
       O."numero",
       O."designat",
       SUBSTR (PARC.IDENT, 0, 3) "COMMUNE",
       SUBSTR (PARC.IDENT, 7, 2) "SECTION",
       SUBSTR (PARC.IDENT, 9, 4) "NUM_PARC",
       PARC."propriet",
       PARC."nat_pro",
       PARC."parc_par",
       PARC."date_acq",
       PARC."origine"
  FROM    A_REIMS.S_OUVMAR O
       INNER JOIN
          (SELECT P.GID,
                  P.GEOMETRY,
                  P.IDENT,
                  P."propriet",
                  P."nat_pro",
                  P."parc_par",
                  P."date_acq",
                  P."origine",
                  O1.GID "GID_OUV"
             FROM A_REIMS.PCI_PARC P, A_REIMS.S_OUVMAR O1
            WHERE SDO_RELATE (O1.GEOMETRY,
                              P.GEOMETRY,
                              'mask=contains+covers+overlapbdyintersect+equal querytype=WINDOW'
                  ) = 'TRUE') PARC
       ON (O.GID = PARC.GID_OUV)
 WHERE O."designat" = 'RM'
Mais là encore pas d'amélioration du rendement.
Une idée ?
Merci d'avance,