Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle:Pojedynczy indeks wielokolumnowy lub dwa indeksy jednokolumnowe

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 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiedy należy zagnieżdżać bloki PL/SQL BEGIN...END?

  2. jak wyeksportować dane z około 300 tabel w ORACLE DB do plików csv lub txt

  3. Jak poprawić wydajność zapytań wstawiania SQL?

  4. 4 sposoby znajdowania wierszy zawierających wielkie litery w Oracle

  5. Jak określić limit czasu @lock w wiosennym zapytaniu jpa?