Jistě.
Normální pohled je dotaz, který definuje virtuální tabulku – data ve skutečnosti v tabulce nemáte, vytvoříte je za běhu spuštěním.
Materializované zobrazení je zobrazení, kde se dotaz spustí a data se uloží do skutečné tabulky.
Data v materializovaném pohledu se obnoví, když jim to řeknete.
Několik případů použití:
-
Máme několik instancí Oracle, kde chceme mít kmenová data v jedné instanci a přiměřeně aktuální kopii dat v ostatních instancích. Nechceme předpokládat, že databázová propojení mezi nimi budou vždy funkční. Nastavili jsme tedy materializované pohledy na ostatní instance pomocí dotazů jako
select a,b,c from [email protected]
a řekněte jim, aby se denně obnovovali. -
Materializované pohledy jsou také užitečné při přepisování dotazů. Řekněme, že máte v datovém skladu tabulku faktů s každou knihou, která byla kdy vypůjčena z knihovny, s daty a půjčovateli. A tento personál chce pravidelně vědět, kolikrát byla kniha vypůjčena. Poté vytvořte materializované zobrazení jako
select book_id, book_name, count(*) as borrowings from book_trans group by book_id, book_name
, nastavte ji na libovolnou frekvenci aktualizací, kterou chcete – obvykle frekvenci aktualizací pro samotný sklad. Nyní, když někdo spustí takovýto dotaz pro konkrétní knihu protibook_trans
tabulka, schopnost přepisování dotazů v Oracle bude dostatečně chytrá na to, aby se podívala na materializovaný pohled, místo aby procházela miliony řádků vbook_trans
.
Zhmotněné pohledy obvykle vytváříte z důvodů výkonu a stability – nespolehlivé sítě nebo dlouhé dotazy mimo pracovní dobu.