Problème comportement Oracle
Bonjour,
Je suis en Oracle 10GR2 et j'ai un souci que je vous expose ci-dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
prod)>select * from CONTRAT partition (m200901) where NU_CONTRAT = '102795462';
Execution Plan
----------------------------------------------------------
0
SELECT STATEMENT Optimizer=CHOOSE (Cost=11 Card=1 Bytes=308)
1 0
PARTITION RANGE (SINGLE) (Cost=11 Card=1 Bytes=308)
2 1
TABLE ACCESS (BY LOCAL INDEX ROWID) OF 'CONTRAT' (TABLE) (Cost=11 Card=1 Bytes=308)
3 2
INDEX (SKIP SCAN) OF 'PK_CONTRAT' (INDEX (UNIQUE)) (Cost=10 Card=1) |
La réponse en quasi-instannée
Citation:
prod)>select * from CONTRAT partition (m200901) where nu_affa in ('112946548','102795462');
Execution Plan
----------------------------------------------------------
0
SELECT STATEMENT Optimizer=CHOOSE (Cost=44037 Card=2 Bytes=616)
1 0
PARTITION RANGE (SINGLE) (Cost=44037 Card=2 Bytes=616)
2 1
TABLE ACCESS (FULL) OF 'CONTRAT' (TABLE) (Cost=44037 Card=2 Bytes=616)
Ma table CONTRAT est partitionnée, les stats sur la partition sont bonnes.
Pourquoi dans un cas, l'optimiseur Oracle utilise l'index et pas dans l'autre.
Merci de vos réponses.
LBO72.