To zależy...
Jest mało prawdopodobne, że indeks tylko w column1 będzie korzystne, jeśli masz już złożony indeks na column1, column2 . Od column1 jest indeksem wiodącym, zapytania do tabeli, które mają tylko column1 jako predykat będzie mógł używać indeksu złożonego. Jeśli często uruchamiasz zapytania, które wymagają pełnego skanowania indeksu i obecności column2 znacznie zwiększa rozmiar indeksu, możliwe, że indeks tylko na column1 byłby bardziej wydajny, ponieważ pełne skanowanie indeksu wymagałoby mniejszej liczby operacji we/wy. Ale to dość nietypowa sytuacja.
Indeks tylko w column2 może być korzystne, jeśli niektóre z twoich zapytań względem tabeli określają predykaty tylko na column2 . Jeśli istnieje stosunkowo niewiele odrębnych wartości column1 , możliwe jest, że Oracle może wykonać skanowanie z pomijaniem indeksu przy użyciu indeksu złożonego, aby spełnić zapytania, które określają tylko column2 jako predykat. Ale skanowanie z pomijaniem jest prawdopodobnie znacznie mniej wydajne niż skanowanie zakresu, więc jest całkiem prawdopodobne, że indeks tylko w column2 skorzystałyby na tych zapytaniach. Jeśli istnieje duża liczba odrębnych wartości dla column1 , skanowanie z pominięciem byłoby jeszcze mniej wydajne, a indeks tylko w column2 byłoby bardziej korzystne. Oczywiście, jeśli nigdy nie wyślesz zapytania do tabeli za pomocą column2 bez określenia predykatu w column1 , nie potrzebujesz indeksu tylko w column2 .