Зависи...
Малко вероятно е индекс само върху column1 ще бъде от полза, ако вече имате съставен индекс на column1, column2 . От column1 е водещият индекс, заявки към таблицата, които имат само column1 като предикат ще може да използва съставния индекс. Ако често изпълнявате заявки, които трябва да направят пълно сканиране на индекса и наличието на column2 значително увеличава размера на индекса, възможно е индекс само върху column1 би било по-ефективно, тъй като пълното сканиране на индекса ще трябва да прави по-малко I/O. Но това е доста необичайна ситуация.
Индекс само върху column2 може да е от полза, ако някои от вашите заявки към таблицата указват предикати само на column2 . Ако има сравнително малко различни стойности на column1 , възможно е Oracle да направи сканиране за прескачане на индекс, използвайки съставния индекс, за да удовлетвори заявки, които указват само column2 като предикат. Но сканирането с прескачане вероятно ще бъде много по-малко ефективно от сканирането на диапазон, така че е разумно вероятно индексът да е само на column2 биха били от полза за тези запитвания. Ако има голям брой отделни стойности за column1 , сканирането с пропускане би било още по-малко ефективно и индекс само върху column2 би било по-полезно. Разбира се, ако никога не правите заявки към таблицата, като използвате column2 без също да указвате предикат на column1 , няма да имате нужда от индекс само върху column2 .