it-swarm-eu.dev

Jaký je rozdíl mezi pohledy a materializovanými pohledy v Oracle?

Jaký je rozdíl mezi pohledy a materializovanými pohledy v Oracle?

323
juan

Materializovaná zobrazení jsou založena na disku a jsou pravidelně aktualizována na základě definice dotazu.

Zobrazení jsou pouze virtuální a definici dotazu spusťte při každém přístupu.

335
dacracot

Zobrazení

Vyhodnocují data v tabulkách, z nichž vychází definice pohledu v okamžiku dotazu na pohled . Jde o logický pohled na vaše tabulky, přičemž nikde jinde nejsou uložena žádná data.

Vzhůru pohledu je, že vám vždy vrátí nejnovější data . Nevýhodou pohledu je to, že jeho výkon závisí na tom, jak dobrý je výrok výběru, na kterém je pohled založen. Pokud příkaz select použitý v pohledu spojí mnoho tabulek nebo použije spojení na základě neindexovaných sloupců, zobrazení by mohlo fungovat špatně.

Materializované pohledy

Jsou podobné běžným pohledům v tom, že jsou logickým pohledem na vaše data (na základě příkazu select), avšak podkladová sada výsledků dotazu byla uložena do tabulky . Nevýhodou je, že při dotazu na materializované zobrazení dotazujete tabulku , která může být také indexována.

Kromě toho, protože všechny spoje byly vyřešeny v době obnovení materializovaného pohledu, zaplatíte cenu spojení jednou (nebo tak často, jak aktualizujete své materializované zobrazení), nikoli vždy, když vyberete z materializovaného pohledu. Kromě toho, s povoleným přepisováním dotazů, může Oracle optimalizovat dotaz, který vybere ze zdroje vašeho materializovaného pohledu tak, že místo toho čte z materializovaného pohledu. V situacích, kdy vytvoříte zhmotněné pohledy jako formy agregovaných tabulek nebo jako kopie často prováděných dotazů, může to výrazně urychlit dobu odezvy vaší aplikace koncového uživatele. Nevýhodou je však to, že data, která získáte zpět z materializovaného pohledu, jsou pouze aktuální jako poslední aktualizace materializovaného pohledu .


Materializované pohledy lze nastavit tak, aby se aktualizovaly ručně, podle nastaveného plánu, nebo na základě databáze detekující změnu dat z jedné ze základních tabulek . Materializované pohledy lze postupně aktualizovat jejich kombinací s protokoly materializovaného pohledu, které fungují jako zdroje pro sběr dat změn v podkladových tabulkách.

Materializovaná zobrazení se nejčastěji používají v aplikacích pro ukládání dat/business intelligence, kde by dotazování na velké faktické tabulky s tisíci miliony řádků vedlo k časům odezvy na dotazy, které vedly k nepoužitelné aplikaci.


Zhmotněné pohledy také pomáhají zaručit konzistentní okamžik v čase, podobně jako izolace snímk .

318
Mike McAllister

Pohled používá dotaz k vytažení dat z podkladových tabulek.

Materializované zobrazení je tabulka na disku, která obsahuje sadu výsledků dotazu.

Materializované pohledy se primárně používají ke zvýšení výkonu aplikace, pokud není možné nebo žádoucí použít standardní pohled s indexy, které se na něj vztahují. Realizovaná zhlédnutí lze pravidelně aktualizovat buď pomocí spouštěčů nebo pomocí volby ON COMMIT REFRESH. Vyžaduje to několik dalších oprávnění, ale není to nic složitého. ON COMMIT REFRESH existuje již od nejméně Oracle 10.

48
Jeremiah Peschka

Pohledy jsou v podstatě logické tabulky podobné strukturám, které jsou vyplněny daným dotazem za chodu. Výsledky dotazu pohledu nejsou nikde uloženy na disk a zobrazení je znovu vytvořeno při každém spuštění dotazu. Materializované pohledy jsou skutečné struktury uložené v databázi a zapsané na disk. Aktualizují se na základě parametrů definovaných při jejich vytvoření.

18
user12786

Materialized view - tabulka na disku, která obsahuje sadu výsledků dotazu

Nezobrazené zobrazení - dotaz, který stahuje data z podkladové tabulky

17
fn27

Pohled: Pohled je pouze pojmenovaný dotaz. Nic neuchovává. Když je dotaz na pohledu, spustí dotaz na definici pohledu. Aktuální data pocházejí z tabulky.

Materialized views: Fyzicky ukládá data a pravidelně se aktualizuje. Při dotazování na MV poskytuje data z MV.

3
smshafiqulislam

Přidání do docela důkladné odpovědi Mika McAllistera ...

Materializované pohledy lze nastavit tak, aby se automaticky aktualizovaly prostřednictvím databáze detekující změny, když je kompilátor považován za dotaz na pohled jednoduchý. Pokud je to považováno za příliš složité, nebude možné nastavit, co jsou v podstatě interní spouštěče ke sledování změn ve zdrojových tabulkách, aby aktualizoval pouze změněné řádky v tabulce mview.

Když vytvoříte zhmotněné zobrazení, zjistíte, že Oracle vytvoří mview a jako tabulku se stejným názvem, což může věci zmást.

2
Stew S

view není nic jiného než dotaz SQL, vezme výstup dotazu a bude vypadat jako virtuální tabulka, která nezabírá žádný úložný prostor ani neobsahuje žádná data

Ale materializovaná zobrazení jsou objekty schématu, ukládají výsledky dotazu do samostatného objektu schématu (tj. Zabírají úložný prostor a obsahují data). To znamená, že materializovaný pohled vrací fyzicky samostatnou kopii dat tabulky

1
Dlucidone