Het hangt ervan af...
Het is vrij onwaarschijnlijk dat een index op slechts column1
is handig als u al een samengestelde index heeft op column1, column2
. Sinds column1
is de leidende index, zoekopdrachten tegen de tabel die alleen column1
. hebben als predikaat zal de samengestelde index kunnen gebruiken. Als u regelmatig zoekopdrachten uitvoert die een volledige scan van de index moeten uitvoeren en de aanwezigheid van column2
de index aanzienlijk vergroot, is het mogelijk dat een index op slechts column1
zou efficiënter zijn omdat de volledige indexscan minder I/O zou moeten doen. Maar dat is een vrij ongebruikelijke situatie.
Een index op slechts column2
kan nuttig zijn als sommige van uw zoekopdrachten in de tabel predikaten specificeren op slechts column2
. Als er relatief weinig verschillende waarden zijn van column1
, is het mogelijk dat Oracle een scan voor het overslaan van de index zou kunnen uitvoeren met behulp van de samengestelde index om te voldoen aan zoekopdrachten die alleen column2
specificeren als predikaat. Maar een scan overslaan is waarschijnlijk veel minder efficiënt dan een bereikscan, dus het is redelijk waarschijnlijk dat een index op slechts column2
zou die vragen ten goede komen. Als er een groot aantal verschillende waarden is voor column1
, zou de scan overslaan nog minder efficiënt zijn en een index op slechts column2
voordeliger zou zijn. Natuurlijk, als u de tabel nooit opvraagt met column2
zonder ook een predikaat op te geven op column1
, je hebt geen index nodig op slechts column2
.