Jaka jest różnica między poglądami a poglądami Zmaterializowanymi w Oracle?

Jaka jest różnica między poglądami a poglądami Zmaterializowanymi w Oracle?

Author: juan, 2008-09-18

8 answers

Zmaterializowane widoki są oparte na dyskach i są okresowo aktualizowane na podstawie definicji zapytania.

Widoki są tylko wirtualne i uruchamiają definicję zapytania za każdym razem, gdy są dostępne.

 299
Author: dacracot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-30 20:36:50

Views

Oceniają dane w tabelach leżących u podstaw definicji widoku w momencie, gdy widok jest pytany . Jest to logiczny widok tabel, bez danych przechowywanych nigdzie indziej.

Zaletą widoku jest to, że będzie on zawsze zwraca Najnowsze dane do ciebie . Minusem widoku jest to, że jego wydajność zależy od tego, jak dobra jest instrukcja select, na której opiera się widok. Jeśli instrukcja select używana przez Widok łączy wiele tabel lub używa joins w oparciu o nieindeksowane kolumny Widok może działać słabo.

Zmaterializowane widoki

Są podobne do zwykłych widoków, ponieważ są logicznym widokiem danych (opartym na instrukcji select), jednak podstawowy zestaw wyników zapytania został zapisany w tabeli. Plusem tego jest to, że gdy odpytywasz zmaterializowany Widok, odpytywasz tabelę , która może być również indeksowana.

Ponadto, ponieważ wszystkie połączenia zostały rozwiązane w zmaterializowanym czas odświeżania widoku, cenę połączenia płacisz raz (lub tak często, jak odświeżasz zmaterializowany widok), a nie za każdym razem, gdy wybierzesz z zmaterializowanego widoku. Ponadto po włączeniu opcji przepisywania zapytań Oracle może zoptymalizować zapytanie, które wybiera ze źródła zmaterializowanego widoku w taki sposób, aby zamiast tego odczytywało z zmaterializowanego widoku. W sytuacjach, w których tworzy się zmaterializowane widoki jako formy tabel zbiorczych lub jako kopie często wykonywanych zapytań, może to znacznie Przyspiesz czas reakcji aplikacji użytkownika końcowego. Minusem jest jednak to, że dane, które otrzymujesz z zmaterializowanego widoku, są tak aktualne, jak przy ostatnim odświeżaniu zmaterializowanego widoku.


Zmaterializowane widoki można ustawić na odświeżanie ręcznie, według ustalonego harmonogramu lub na podstawie bazy danych wykrywającej zmianę danych z jednej z baz danych. Zmaterializowane widoki można aktualizować stopniowo, łącząc je z zmaterializowanymi Wyświetl dzienniki, które działają jako źródła przechwytywania danych zmian w bazowych tabelach.

Zmaterializowane widoki są najczęściej używane w hurtowniach danych / aplikacjach business intelligence, gdzie odpytywanie dużych tabel faktów z tysiącami milionów wierszy skutkowałoby czasem odpowiedzi na zapytania, co skutkowałoby bezużyteczną aplikacją.


Zmaterializowane widoki pomagają również zagwarantować spójny moment w czasie, podobny do izolacji migawek.

 292
Author: Mike Williamson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-29 16:12:30

Widok wykorzystuje zapytanie do pobierania danych z bazowych tabel.

Zmaterializowany widok jest tabelą na dysku, która zawiera zestaw wyników zapytania.

Zmaterializowane widoki są używane przede wszystkim do zwiększenia wydajności aplikacji, gdy nie jest możliwe lub pożądane użycie standardowego widoku z zastosowanymi do niego indeksami. Zmaterializowane widoki mogą być regularnie aktualizowane za pomocą wyzwalaczy lub za pomocą opcji ON COMMIT REFRESH. Wymaga to kilku dodatkowych uprawnień, ale to nic złożone. ON COMMIT REFRESH obowiązuje od co najmniej 10.

 45
Author: Jeremiah Peschka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-06 15:51:32

Widoki są zasadniczo logicznymi strukturami przypominającymi tabelę, wypełnianymi w locie przez Dane Zapytanie. Wyniki zapytania widoku nie są przechowywane nigdzie na dysku i widok jest odtwarzany za każdym razem, gdy zapytanie jest wykonywane. Zmaterializowane widoki są rzeczywistymi strukturami przechowywanymi w bazie danych i zapisywanymi na dysk. Są one aktualizowane na podstawie parametrów zdefiniowanych podczas ich tworzenia.

 17
Author: user12786,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 15:31:54

Zmaterializowany widok - Tabela na dysku, która zawiera zestaw wyników zapytania

Widok niematerialny - zapytanie pobierające dane z bazowej tabeli

 13
Author: fn27,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-13 09:44:56

Widok: widok jest tylko nazwanym zapytaniem. Niczego nie przechowuje. Gdy w widoku jest zapytanie, uruchamia ono zapytanie definicji widoku. Aktualne dane pochodzą z tabeli.

Zmaterializowane widoki: przechowuje dane fizycznie i jest okresowo aktualizowany. Podczas odpytywania MV podaje dane z MV.

 2
Author: smshafiqulislam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-27 18:02:21

Dodaję do dość dokładnej odpowiedzi Mike ' a Mcallistera...

Zmaterializowane widoki mogą być ustawione tylko na odświeżanie Automatycznie przez bazę danych wykrywającą zmiany, gdy zapytanie widoku jest uważane przez kompilator za proste. Jeśli zostanie to uznane za zbyt złożone, nie będzie w stanie skonfigurować wewnętrznych wyzwalaczy do śledzenia zmian w tabelach źródłowych, aby zaktualizować tylko zmienione wiersze w tabeli mview.

Kiedy tworzysz zmaterializowany widok, znajdziesz ta Oracle tworzy zarówno mview , jak i tabelę o tej samej nazwie , co może powodować zamieszanie.

 1
Author: Stew S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-04 04:05:17

Widok jest niczym innym jak zapytaniem SQL, pobiera wynik zapytania i sprawia, że wygląda jak wirtualna tabela, która nie zajmuje miejsca ani nie zawiera żadnych danych

Ale zmaterializowane widoki są obiektami schematu, przechowują wyniki zapytania w oddzielnym obiekcie schematu (tzn. zajmują miejsce w pamięci i zawierają dane). Oznacza to, że zmaterializowany widok zwraca fizycznie oddzielną kopię danych tabeli

 1
Author: Dlucidone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-08 05:29:28