|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Membre du Club
![]() Inscription : décembre 2006 Messages : 119 ![]() |
Bonjour,
Petite question sur les index (en 9i) : j'ai un index avec 3 colonnes A, B, C avec B qui peut être nulle. Est-ce que dans l'arbre binaire de l'index la valeur nulle est considérée comme les autres ? En clair si j'ai une requête Citation:
Merci. |
|
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
NULL n'est pas référencé dans l'index si c'est ta question
Eventuellement tu peux utiliser cette astuce : http://www.dba-oracle.com/oracle_tips_null_idx.htm que je n'apprécie pas des masses |
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 456 ![]() |
Tu es sur Orafrance ?
Le NULL sur toutes les valeurs n'est pas dans l'index. Si au moins 1 colonne d'un index multicolonnes est NOT NULL alors la ligne d'index est créée. Donc l'absence de valeur est dans l'index, mais par contre l'index ne la prendra pas en compte dans le cas d'un WHERE B IS NULL
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Si une partie des colonnes est nulle au sens SQL, alors l'index les prends en compte.
Exemple: Code :
|
||
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Bien sûr... je dis juste que s'il limite la clause à B IS NULL comme NULL n'est pas dans l'index ça aura pour effet de faire un FULL SCAN... désolé si c'était pas clair
|
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : décembre 2006 Messages : 119 ![]() |
Donc NULL est traité comme les autres valeurs.
Merci pour la démo. Je suppose que c'est vrai quelle que soit la version. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com