it-swarm-eu.dev

Proč nepoužít tabulku místo materializovaného pohledu?

Jsem nová v databázích Oracle. Pokud jsem pochopil správně, materializované zobrazení je pohled, který je výsledná sada uložena jako fyzická tabulka v databázi a toto zobrazení/tabulka jsou obnoveny na základě některých parametrů. Pokud je pohled uložen jako fyzická tabulka, proč neukládat data do tabulky na prvním místě? Jaká je výhoda použití materializovaného pohledu místo tabulky?

55
jrara

Jednou z největších výhod použití materializovaného pohledu je to, že se Oracle stará o synchronizaci dat. Pokud máte samostatnou agregovanou tabulku, jste zodpovědní za udržování synchronizovaných dat. To obecně vyžaduje přiměřené množství kódu a slušné množství testů a většina organizací zvládne dělat chyby, které ponechávají díry, které způsobují, že se agregovaná tabulka dostane mimo synchronizaci. To platí zejména při pokusu o implementaci přírůstkových aktualizací agregované tabulky.

Další hlavní výhoda spočívá v tom, že v závislosti na nastavení může společnost Oracle použít přepisování dotazů k použití materializovaných pohledů, když uživatelé vydávají dotazy proti základním tabulkám. Například, pokud máte spoustu existujících přehledů proti podrobné tabulce, která poskytuje denní, měsíční a roční agregované výsledky, můžete vytvořit základní zobrazení na základní tabulce, které agreguje data na denní úrovni a optimalizátor může využít tento materializovaný pohled pro všechny vaše stávající dotazy. Díky tomu je mnohem snazší optimalizovat pracovní zátěž v přehledech v datovém skladu, aniž byste se pokusili přejít a přepsat desítky zpráv, aby použily vaši novou agregovanou tabulku, nebo si nechat chatovat s DBMS_ADVANCED_REWRITE vynutit si vlastní přepsání dotazů.

60
Justin Cave

Materializované pohledy jsou automaticky aktualizovány, jak jsou aktualizovány jejich základní tabulky.

14
Gordon Bell

Jedním z dobrých důvodů pro použití MV je, že někdy chcete agregovat data a získat tyto souhrnné informace z velkých tabulek často a rychle. Bez materializovaných pohledů musíte deonormalizovat některé tabulky a udržovat agregáty pomocí kódu nebo opakovaně skenovat velké sady řádků. V žádném případě není vždy přijatelný speciálně s přístrojovou deskou a podobnými online aplikacemi. Pokud výsledky ponecháte v samostatných tabulkách, komplikujete kód aplikace a jak říká @Justin Cave, budete mít na starosti zajistit, aby ručně agregovaná data byla synchronizována. s daty původní tabulky.

10
NoChance

Nejedná se o osobu Oracle, ale dalším případem použití by byla řešení třetích stran. Obecně nepodporují provedení změn jejich návrhů, ale MV by bylo „neviditelné“ jejich kódu, ale poskytovalo přístup k vlastnímu výkaznictví/výpisům dat.

Není to zdarma v tom, že to bude stát náklady na skladování a potenciálně ovlivňující náklady na vložení/aktualizaci času, ale to může být vyrovnáno časem stráveným získáním materializovaných dat versus „přímým pohledem“ nebo vytvořením skutečných tabulek a udržováním okolního ETL.

Nakonec může dojít ke zrušení vaší smlouvy o podpoře s prodejcem, obraťte se na svého právníka-bla-bla bla.

4
billinkc

Namísto přímého přechodu na Materialized views dovolte mi vysvětlit Views.

V zásadě pohledy existují logicky na rozdíl od tabulek. Pokud chceme uživatelům skrýt určité sloupce, nemůžeme to udělat pomocí tabulek. Vytvořením pohledu můžeme dosáhnout bezpečnosti.

se-case: Pokud je pohled interně spojen s 10 tabulkami spolu se skupinou podle a funkce mají miliony řádků, provedení trvá hodně času.

Takže přichází materializovaná zobrazení, která nám pomáhají získat data rychleji. Materializované pohledy jsou fyzicky v databázi. Kdykoli je aktualizována základní tabulka, aktualizuje se materializované zobrazení.

Materializovaná zobrazení jsou pravidelně aktualizována na základě definice dotazu, tabulka to nemůže udělat.

2
Premraj

Materializované zobrazení je databázový objekt, který obsahuje výsledky dotazu. Jsou to lokální kopie dat umístěných na dálku nebo se používají k vytváření souhrnných tabulek založených na agregaci dat tabulky. http://www.oraappdata.com/2016/04/materialized-view.html

0
Dayakark

Materializovaný pohled lze nastavit tak, aby se pravidelně obnovoval automaticky. Tabulka může vyžadovat další kód pro zkrácení/opětovné načtení dat.

příklad: Materializované zobrazení, které obsahuje data z více tabulek, lze nastavit tak, aby se automaticky obnovovalo v době mimo špičku. Fyzická tabulka by potřebovala další kód pro zkrácení/opětovné načtení dat.

Zabezpečení lze lépe ovládat v materializovaném pohledu, nikoli v tabulce.

0
samroze