bonjour,

voila plus jour que je galère sur l'impossibilité de me débarrasserd'un "TABLE ACCESS FULL" !!

J'ai une table comme suit les documents XML font ~30ko.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
CREATE TABLE XYZREGISTRE of XMLType
    XMLTYPE store AS OBJECT RELATIONAL
    XMLSCHEMA "http://X.Y.Z/projet/ABC/schema/xyzmessage.xsd"
	ELEMENT "xyzmessage"
/
Plein d'index de ce genre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
CREATE INDEX idx_xyzreg_1 ON XYZREGISTRE
	(extractvalue(object_value,'/xyzmessage/META_DATA/md_hopcreator')) TABLESPACE INDX;
si je fait un requete que ne recupère que 1 champs (indexé) par de pb.

par contre comment peut on optimiser cette requete :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT extract(object_value,'/xyzmessage').getClobVal() FROM XYZREGISTRE WHERE existsNode(object_value,'/xyzmessage[NOID="x007tzg4263') = 1;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
-----------------------------------------------------------------------------------------------------------------
| Id  | Operation            | Name        | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
-----------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT     |             |     1 |  2548 |     2   (0)| 00:00:01 |        |      |            |
|   1 |  PX COORDINATOR      |             |       |       |            |          |        |      |            |
|   2 |   PX SEND QC (RANDOM)| :TQ10000    |     1 |  2548 |     2   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
|   3 |    PX BLOCK ITERATOR |             |     1 |  2548 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
|*  4 |     TABLE ACCESS FULL| XYZREGISTRE |     1 |  2548 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
 
 4 - filter("XYZREGISTRE"."SYS_NC00017$"='x007tzg4263')

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Statistiques
----------------------------------------------------------
         37  recursive calls
          3  db block gets
       5206  consistent gets
          0  physical reads
        628  redo size
       1065  bytes sent via SQL*Net to client
        674  bytes received via SQL*Net from client
          5  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
          1  rows processed
pour eviter un access full.
note :: le .getClobVal() est OBLIGATOIRE.

merci de votre aide !!