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

Kiedy należy korzystać ze zorganizowanej tabeli indeksowej Oracle? A kiedy nie powinienem?

Zasadniczo tabela zorganizowana według indeksu to indeks bez tabeli. Istnieje obiekt tabeli, który możemy znaleźć w USER_TABLES, ale jest to tylko odniesienie do bazowego indeksu. Struktura indeksu jest zgodna z projekcją tabeli. Więc jeśli masz tabelę, której kolumny składają się z klucza podstawowego i co najwyżej jednej innej kolumny, to masz potencjalnego kandydata na INDEKS ZORGANIZOWANY.

Głównym przypadkiem użycia tabeli zorganizowanej według indeksu jest tabela, do której prawie zawsze uzyskuje się dostęp za pomocą klucza podstawowego i zawsze chcemy pobrać wszystkie jej kolumny. W praktyce tabele zorganizowane według indeksu są najprawdopodobniej danymi referencyjnymi, sprawami wyszukiwania kodu. Tabele aplikacji są prawie zawsze zorganizowane w stosy.

Składnia umożliwia IOT posiadanie więcej niż jednej kolumny bez klucza. Czasami to prawda. Ale jest to również wskazówka, że ​​być może musimy ponownie rozważyć nasze decyzje projektowe. Z pewnością, jeśli zastanawiamy się nad potrzebą dodatkowych indeksów w kolumnach kluczy innych niż podstawowe, prawdopodobnie lepiej będzie, jeśli użyjemy zwykłej tabeli sterty. Tak więc, ponieważ większość tabel prawdopodobnie wymaga dodatkowych indeksów, większość tabel nie jest odpowiednia dla IOT.

Wracając do tej odpowiedzi, widzę kilka innych odpowiedzi w tym wątku, które proponują tabele przecięcia jako odpowiednich kandydatów do IOT. Wydaje się to rozsądne, ponieważ często zdarza się, że tabele przecięcia mają odwzorowanie, które pasuje do klucza kandydującego:STUDENTS_CLASSES może mieć odwzorowanie tylko (STUDENT_ID, CLASS_ID).

Myślę, że to nie jest żeliwo. Tabele skrzyżowań często mają klucz techniczny (tj. STUDENT_CLASS_ID). Mogą również zawierać kolumny niebędące kluczami (kolumny metadanych, takie jak START_DATE, END_DATE, są powszechne). Ponadto nie ma dominującej ścieżki dostępu — chcemy znaleźć wszystkich uczniów, którzy uczęszczają na zajęcia tak często, jak chcemy znaleźć wszystkie zajęcia, na które uczęszcza uczeń — dlatego potrzebujemy strategii indeksowania, która obsługuje oba te elementy równie dobrze. Nie mówiąc, że tabele przecięcia nie są przypadkiem użycia dla IOT. tylko, że nie są tak automatycznie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. zmień format daty z char

  2. Jak wykonać interpolację liniową za pomocą Oracle SQL?

  3. Dynamiczna zmienna schematu instrukcji SQL Oracle

  4. Wywołaj poprawnie procedurę składowaną za pomocą Spring Data JPA

  5. SQL:Uzyskaj rekordy utworzone w przedziale czasowym dla określonych dat