[XMLTYPE] - Index - TABLE ACCESS FULL
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:
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:
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:
SELECT extract(object_value,'/xyzmessage').getClobVal() FROM XYZREGISTRE WHERE existsNode(object_value,'/xyzmessage[NOID="x007tzg4263') = 1;
Code:
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:
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 !!