|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Nouveau Membre du Club
![]() Inscription : août 2006 Messages : 137 ![]() |
Bonjour
Oracle 9ir2 J’ai une requête de 2 tables A et B dont B est vide j’ai calculé les stats sur les 2 mais Le plan d’exécution fait toujours un acces_full sur la table B malgré qu’il y ait un index sur cette table(b). voici ma requete : Code :
Voici son plan d’execution: Citation:
INDEX RANGE SCAN Object name=INN_A _col_1 Cost=2 Cardinality=1 TABLE ACCESS FULL Object name=B Cost=1982 Cardinality=1 Bytes=48 table A (col1, col2, col3, col4) ---> index concatené table A RCA_ID-----> pk indexée aussi Table b RRPP.col_date -----> index seul de la table b Le problème il fait un acces full sur la table B malgré que l’index est crée J’ai vérifié si l’index est ignoré dans les cas de conversion implicite ,valeur nulle, etc, mais c pas le cas ? pourriez vous m’orientez svp ? pour ne pas faire acces full sur B Merci de votre aide |
|||
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() Inscription : juillet 2006 Messages : 445 ![]() |
Bonjour,
Vous accédez à la table B par RCA_ID, qui n'est pas indexé. |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : août 2006 Messages : 137 ![]() |
Je vous remercie c ça le probleme!!!!
|
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : juin 2004 Messages : 487 ![]() |
le but de l'optimiseur n'et pas d'utiliser les index qur=e tu crée mais de trouver le plan d'execution le plus rapide.
Si ta table est vide, pourquoi utiliser un index pour la parcourir? Si j'ai bien lu ton enoncé, je suis entièrement d'accord avec l'optimiseur! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com