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

Co to są widoki zmaterializowane?

Jasne.

Widok normalny to zapytanie, które definiuje wirtualną tabelę — w rzeczywistości nie masz danych w tabeli, tworzysz je w locie, wykonując.

Widok zmaterializowany to widok, w którym uruchamiane jest zapytanie, a dane zapisywane w rzeczywistej tabeli.

Dane w zmaterializowanym widoku są odświeżane, gdy im to powiesz.

Kilka przypadków użycia:

  • Mamy wiele instancji Oracle, w których chcemy mieć dane podstawowe w jednej instancji oraz w miarę aktualną kopię danych w innych instancjach. Nie chcemy zakładać, że łącza do bazy danych między nimi będą zawsze działały. Dlatego konfigurujemy zmaterializowane widoki innych instancji z zapytaniami takimi jak select a,b,c from [email protected] i powiedz im, żeby codziennie się odświeżali.

  • Widoki zmaterializowane są również przydatne podczas przepisywania zapytań. Załóżmy, że masz w hurtowni danych tabelę faktów zawierającą każdą książkę wypożyczoną kiedykolwiek z biblioteki, z datami i osobami wypożyczającymi. A ten personel regularnie chce wiedzieć, ile razy książka została wypożyczona. Następnie zbuduj zmaterializowany widok jako select book_id, book_name, count(*) as borrowings from book_trans group by book_id, book_name , ustaw ją na dowolną częstotliwość aktualizacji — zwykle częstotliwość aktualizacji dla samej hurtowni. Teraz, jeśli ktoś uruchomi zapytanie w ten sposób dla konkretnej książki względem book_trans tabeli, funkcja przepisywania zapytań w Oracle będzie wystarczająco inteligentna, aby spojrzeć na zmaterializowany widok, zamiast przechodzić przez miliony wierszy w book_trans .

Zazwyczaj tworzysz zmaterializowane widoki ze względu na wydajność i stabilność — niestabilne sieci lub długie zapytania poza godzinami pracy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyzwalaj błąd aktualizacji clob

  2. Wybór SQL dla wszystkich rekordów, które mogą posiadać określoną wartość

  3. Zapytanie Oracle, aby dopasować wszystkie wartości na liście wśród wszystkich wierszy w tabeli

  4. Używanie funkcji Max() do wybierania wartości grup

  5. Tworzenie indeksu przestrzennego na oracle