Bonjour... (9i sur Windows 2000 pro)
J'ai un big problème !
J'importe une base de recette sur une base de prod... OK
Quand j'effectue les stats, je me rends compte que ma table DOCUMENT qui contient un LOB, crée des index complètement farfelus...
Voici la définition de ma table... elle contient un index sur le LOB...
CREATETABLE TEST.DOCUMENT
(
MA_DONNEE NUMBER NOT NULL
CONSTRAINT etc...
)
LOB(MON_LOB) STOREAS SYS_LOB0000032689C00005$$
(
TABLESPACE MON_TABLESPACE
STORAGE(INITIAL etc...
CHUNK 8192
PCTVERSION 10
)
etc...
/
CREATEINDEX TEST.DOCUMENT_INDEX
ON TEST.DOCUMENT(MON_LOB)
TABLESPACEDEFAULT
LOGGING
PCTFREE 0
STORAGE(PCTINCREASE 0)
NOPARALLEL
NOCOMPRESS
Il semblerait que, lors de l'import, la table DOCUMENT ne recrée pas correctement les index issus de la table DOCUMENT... et je ne sais pas pourquoi ...
Voici une représentation de ma table de recette qui est ok !
Et celle de ma table de prod apprès l'import...TEST.DOCUMENT => 32816 rows
TEST.DR$DOCUMENT_INDEX$I => 85 173 rows
TEST.DR$DOCUMENT_INDEX$K => 3843 rows
TEST.DR$DOCUMENT_INDEX$N => 30506 rows
TEST.DR$DOCUMENT_INDEX$R => 22 rows
Il semblerait que l'import fasse n'importe quoi...TEST.DOCUMENT => 32816 rows
TEST.DR$DOCUMENT_INDEX$I => 95927 rows
TEST.DR$DOCUMENT_INDEX$K => 45553,125695844 rows !
TEST.DR$DOCUMENT_INDEX$N => 0 rows !
TEST.DR$DOCUMENT_INDEX$R => 22 rows
J'ai plusieurs questions à poser :
1°) Comment et pourquoi Oracle crée-t-il ses index DR$ORACLE_INDEXn ?
2°) Avez-vous déjà eu le cas d'un Import qui se passerait mal, quand oracle doit re-creer des index LOB ?
3°) Avez-vous une solution pour empêcher ça ?
4°) Quand je rebuilt DOCUMENT_INDEX, il me plante en ORA_29871 : Invalid alter option for a domain index
5°) Quand je drop et re-crée DOCUMENT_INDEX, il me plante en ORA_2327 : Cannot create index on expression with datatype LOB (alors qu'il a bien créé l'index via l'import)
Bref, je suis un peu perdu... Pouvez-vous m'aider ?
Partager