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

Jak i kiedy są używane indeksy w operacjach INSERT i UPDATE?

W przypadku instrukcji UPDATE indeks może być używany przez optymalizator, jeśli uzna, że ​​indeks może go przyspieszyć. Indeks służyłby do zlokalizowania wierszy, które mają zostać zaktualizowane. Indeks jest również tabelą w pewnym sensie, więc jeśli indeksowana kolumna jest aktualizowana, oczywiście musi również UAKTUALNIĆ indeks. Z drugiej strony, jeśli uruchamiasz aktualizację bez klauzuli WHERE, optymalizator może zdecydować się nie używać indeksu, ponieważ musi mieć dostęp do całej tabeli, pełne skanowanie tabeli może być bardziej wydajne (ale nadal może wymagać aktualizacji indeksu ). Optymalizator podejmuje te decyzje w czasie wykonywania w oparciu o kilka parametrów, takich jak to, czy istnieją prawidłowe statystyki dotyczące danych tabel i indeksów, ile danych ma to wpływ, jaki rodzaj sprzętu itp.

W przypadku instrukcji INSERT, chociaż sama INSERT nie potrzebuje indeksu, indeks również będzie musiał być „wstawiony do”, więc będzie musiał być dostępny przez Oracle. Innym przypadkiem, w którym INSERT może spowodować użycie indeksu, jest INSERT w następujący sposób:

INSERT INTO mytable (mycolmn)
SELECT mycolumn + 10 FROM mytable;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak zwrócić dynamiczny zestaw wyników w funkcji Oracle

  2. SQL Multiple Columns w klauzuli IN do konwersji na JPA

  3. Dlaczego nie ma danych wyjściowych po zakończeniu bloku PLSQL Anonymous?

  4. Wypełnij tablicę asocjacyjną wewnątrz tabeli zagnieżdżonej

  5. Kryteria hibernacji dla dat