Widok a widok zmaterializowany
Widoki i widoki zmaterializowane (mviews) to dwa typy obiektów bazy danych Oracle. Oba te obiekty odwołują się do zapytań wybierających. Te zapytania wybierające działają jak tabele wirtualne. Normalnie widoki i mwidoki odnoszą się do dużych zapytań wybierających, które mają zestaw złączeń. Dlatego jedną z głównych zalet widoków jest możliwość przechowywania złożonych zapytań wybierających jako widoków. W związku z tym możemy ukryć logikę stojącą za zapytaniami wybierającymi przed użytkownikami końcowymi. Kiedy musimy wykonać złożoną instrukcję select, wystarczy wykonać
wybierzz nazwy widoku
Wyświetl
Jak wspomniano wcześniej, widok to wirtualna tabela, która ukrywa zapytanie wybierające. Te zapytania wybierające nie są wstępnie wykonywane. Kiedy wykonujemy instrukcję SELECT z widoku, wykonuje ona instrukcję SELECT znajdującą się w treści widoku. Załóżmy, że instrukcja select ciała widoku jest bardzo złożona. Więc kiedy jest wykonywany, wykonanie zajmuje trochę czasu (stosunkowo więcej czasu). Ponadto view zajmuje bardzo mało miejsca na swoje przechowywanie. Dzieje się tak, ponieważ zawiera tylko instrukcję select jako zawartość.
Zmaterializowany widok (Mview)
To jest specjalny typ widoku. Mviewy są tworzone, gdy mamy problemy z wydajnością z widokami. Kiedy tworzymy mview, wykonuje on zapytanie wybierające i przechowuje dane wyjściowe jako tabelę migawek. Gdy żądamy danych od Mview, nie musi on ponownie wykonywać swojej instrukcji select. Daje dane wyjściowe z tabeli migawek. Dlatego czas wykonania mview jest krótszy niż view (dla tej samej instrukcji select). Jednak mviews nie może być używany przez cały czas, ponieważ pokazuje te same dane wyjściowe, które są przechowywane jako tabela migawek. Powinniśmy odświeżyć mview, aby uzyskać jego najnowszy zestaw wyników.
Jaka jest różnica między View a Mview?
1. Mview zawsze przechowuje swoje dane wyjściowe jako tabelę migawek podczas tworzenia, ale widok nie tworzy żadnych tabel.
2. Widok nie potrzebuje dużej przestrzeni do przechowywania swojej zawartości, ale mview potrzebuje stosunkowo większej przestrzeni niż widok do przechowywania swojej zawartości (jako tabela migawek).
3. View zajmuje więcej czasu wykonania, ale mview zajmuje mniej czasu niż widoki (dla tej samej instrukcji select).
4. Mviews muszą zostać odświeżone, aby uzyskać najnowsze dane, ale widoki zawsze podają najnowsze dane.
5. Schemat wymaga uprawnienia „tworzenie widoku zmaterializowanego” do tworzenia widoków m, a dla widoków – uprawnienia „tworzenie widoku”.
6. Indeksy można tworzyć na mviews, aby uzyskać większą wydajność, ale indeksów nie można tworzyć na widokach.