Det kommer an på...
Det er ret usandsynligt, at et indeks på bare column1
vil være en fordel, hvis du allerede har et sammensat indeks på column1, column2
. Siden column1
er det førende indeks, forespørgsler mod tabellen, der kun har column1
som prædikat vil kunne bruge det sammensatte indeks. Hvis du ofte kører forespørgsler, der skal lave en fuld scanning af indekset og tilstedeværelsen af column2
øger størrelsen af indekset væsentligt, er det muligt, at et indeks på kun column1
ville være mere effektiv, da den fulde indeksscanning ville skulle gøre mindre I/O. Men det er en ret usædvanlig situation.
Et indeks på netop column2
kan være en fordel, hvis nogle af dine forespørgsler i tabellen angiver prædikater på kun column2
. Hvis der er relativt få distinkte værdier af column1
, er det muligt, at Oracle kunne lave en indeksspringsscanning ved hjælp af det sammensatte indeks for at tilfredsstille forespørgsler, der kun specificerer column2
som prædikat. Men en spring-scanning er sandsynligvis meget mindre effektiv end en rækkeviddescanning, så det er rimeligt sandsynligt, at et indeks på kun column2
ville gavne disse forespørgsler. Hvis der er et stort antal forskellige værdier for column1
, ville spring-scanningen være endnu mindre effektiv og et indeks på kun column2
ville være mere gavnligt. Selvfølgelig, hvis du aldrig forespørger i tabellen ved hjælp af column2
uden også at angive et prædikat på column1
, behøver du ikke et indeks på kun column2
.