SQL/Oracle: lors de l'index sur plusieurs colonnes peuvent être utilisées
Si je créer un index sur les colonnes (A, B, C), dans l'ordre, ma compréhension est que la base de données sera en mesure de l'utiliser même si je ne recherche que sur (A) ou (A et B), ou (A, B et C), mais pas si je recherche uniquement sur (B) ou (C), ou (B et C). Est-ce correct?
Vous devez vous connecter pour publier un commentaire.
Il ya en fait trois fondé sur l'indice des méthodes d'accès que l'Oracle peut utiliser lors d'un prédicat est placé sur une des colonnes de l'index.
i) l'Indice de skip-scan: http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/optimops.htm#PFGRF10105
ii) Rapide analyse d'index: http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/optimops.htm#i52044
iii) l'Indice de l'analyse complète: http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/optimops.htm#i82107
J'ai le plus souvent vu la rapide analyse d'index "dans la nature", mais tout est possible.
Qui n'est pas correct. Toujours préférable de venir avec un cas de test qui représente vos données et de voir par vous-même. Si vous voulez vraiment comprendre l'Oracle SQL Optimizer google Jonathan Lewis, à lire ses livres, lire son blog, découvrez son site internet, le gars est incroyable, et il génère toujours des cas de test.
Jusqu'à la version Oracle 8 un index ne sera jamais utilisé, sauf si la première colonne est inclus dans le SQL.
Dans Oracle 9i le passer l'Analyse de l'Indice d'Accès fonctionnalité a été introduite, qui permet à l'Oracle du CBO, tentative d'utiliser des index, même lorsque le préfixe de colonne n'est pas disponible.
Bon aperçu de comment passer l'analyse des œuvres ici: http://www.quest-pipelines.com/newsletter-v5/1004_C.htm