PostgreSQL

Jak používat materializovaná zobrazení PostgreSQL

Jak používat materializovaná zobrazení PostgreSQL

Pohledy v PostgreSQL jsou grafické tabulky, které zobrazují data z odpovídajících tabulek. Společná zobrazení lze také upravit. PostgreSQL posouvá koncept pohledů do další fáze tím, že umožňuje pohledům materiálně ukládat informace, označované jako zhmotněné pohledy. Zhmotněné zobrazení zachovává výstup časově náročného a komplikovaného dotazu a umožňuje vám kdykoli rychle dotazovat výsledky. V datových skladech a aplikacích business intelligence se často používají materializovaná hlediska, protože jsou užitečná v situacích, které vyžadují rychlý přístup k datům.

Proč používat materializované pohledy?

Pokud je příkaz view pro vás příliš pomalý, můžete raději použít materializované zobrazení. Zhmotněné pohledy mají mnoho univerzálnosti, protože vám umožňují uchovat si reprezentaci v databázi s kratšími časy přístupu. Předpokládejme, že jste povinni vytvořit databázový dotaz, abyste se připojili k několika tabulkám, odebrali řádky z sjednocené kolekce a třídili tabulky různými způsoby. Může to být komplikovaný a časově náročný dotaz a bez zhmotněných pohledů skončíte s využitím tohoto zhmotnění při řešení tohoto dilematu. Tento článek vás naučí, jak používat materializovaná zobrazení v PostgreSQL.

Syntax

>> VYTVOŘIT MATERIALIZOVANÝ ZOBRAZENÍ view_name JAKO dotaz S [NE] ÚDAJI;

Vysvětlení tohoto obecného pohledu je následující:

Jak používat materializovaná zobrazení

Spusťte prostředí příkazového řádku PostgreSQL a začněte pracovat na zhmotněných pohledech.

Chcete-li začít používat příkazový shell, zadejte název serveru, databázi, na které chcete pracovat, číslo portu a uživatelské jméno. Pokud chcete použít výchozí systém, ponechte tyto mezery prázdné.

Příklad 1: Jednoduché zobrazení

Abyste porozuměli materializovanému pohledu, musíte nejprve porozumět jednoduchým pohledům. Vytvořte tedy novou tabulku „Student“ pomocí příkazu CREATE TABLE, jak je přiložen.

>> CREATE TABLE Student (sid serial PRIMARY KEY, sname VARCHAR (100) NOT NULL, age VARCHAR (100) NOT NULL);

Poté do něj vložte data pomocí dotazu INSERT.

Načtěte záznamy tabulky „Student“ pomocí příkazu SELECT pro jednoduché zobrazení.

>> SELECT * FROM Student;

Příklad 2: Jednoduchý materializovaný pohled

Nyní je čas pokrýt materializované zobrazení. K vytvoření materializovaného pohledu použijeme tabulku „Student“. Vytvoříme materializovaný pohled s názvem 'std_view' pomocí příkazu 'CREATE MATERIALIZED VIEW'. V tomto zobrazení načteme pole se jménem studenta „sname“ z tabulky „Student“, seskupené a seřazené vzestupně ve sloupci „sname“.

>> VYTVOŘTE MATERIALIZOVANÝ ZOBRAZ std_view JAKO VYBRAT sname ZE SKUPINY PODLE sname OBJEDNAT BY sname;

Nyní pomocí dotazu SELECT k provedení zobrazení vrátíme jména studentů ve sloupci „sname“ tabulky „Student“.

>> SELECT * FROM std_view;

Příklad 3: Zhmotněné zobrazení pomocí klauzule WHERE

Nyní vytvoříme materializované zobrazení pomocí klauzule WHERE. Zvažte následující tabulku „Student“ s některými změnami jejích hodnot.

Poté vytvoříme materializovaný pohled s názvem 'teststd' pomocí dotazu 'CREATE MATERIALIZED VIEW'. Pomocí klauzule WHERE vybereme záznamy tabulky „Student“, kde je hodnota sloupce „age“ větší než „25“. Dotaz funguje správně, jak je vidět na obrázku.

>> VYTVOŘTE MATERIALIZOVANÝ ZOBRAZENÍ teststd JAKO VYBRAT sid, sname, age FROM Student WHERE age> '25';

Nakonec provedeme materializované zobrazení, které jsme právě vytvořili pomocí příkazu SELECT, jak je uvedeno níže. Uvidíte, že vrátí všechny záznamy z tabulky „Student“, ve které má sloupec „age“ hodnotu větší než „25.''

>> SELECT * FROM teststd;

Příklad 4: Obnovit zhmotněné zobrazení pomocí klauzule WITH NO DATA

V tomto příkladu vytvoříme materializované zobrazení, ve kterém použijeme klauzuli WITH NO DATA k obnovení zobrazení. Předpokládejme, že následující tabulka 'Student' s některými změnami v jejích hodnotách.

Nyní vytvoříme materializované zobrazení „teststd“. Toto zobrazení vybere záznamy z tabulky „student“, ve kterých je věk studentů nižší než 40 let.„Načtené záznamy budou seskupeny a seřazeny podle vzestupného pořadí ve sloupci„ sid “. Na konci dotazu použijeme klauzuli WITH NO DATA k označení, že dotaz neuloží žádné informace v materializovaném zobrazení. Pohled zobrazený níže by měl tyto akce úspěšně provést.

>> VYTVOŘTE MATERIALIZOVANÝ ZOBRAZENÍ teststd JAKO VYBRAT sid, sname, věk OD studenta KDE věk < '40' GROUP BY sid ORDER BY sid WITH NO DATA;

Když do zhmotněného pohledu přidáte klauzuli „S BEZ DAT“, vytvoří se prázdná. Toto zhmotněné zobrazení nelze zpochybnit. Jak můžete vidět na následujícím obrázku, není načítání záznamů v nově vytvořeném zobrazení.

Příkaz REFRESH MATERIALIZED VIEW se používá k importu dat do materializovaného pohledu. Vyplňte materializované zobrazení spuštěním následujícího dotazu REFRESH MATERIALIZED VIEW v prostředí. Jak vidíte, tento dotaz fungoval efektivně.

>> REFRESH MATERIALIZED VIEW teststd;

Opět načtěte záznamy materializovaného pohledu 'teststd' pomocí příkazu SELECT v shellu. Tentokrát výběrový dotaz funguje správně, protože příkaz 'REFRESH' načetl obsah do materializovaného zobrazení.

Příklad 5: Drop materializované zobrazení

Následující příkaz odstraní materializované zobrazení.

>> DROP MATERIALIZOVANÝ ZOBRAZENÍ std_view;

Závěr

Tento článek vám ukázal, jak používat materializovaná zobrazení pomocí klauzule WHERE a dotazů REFRESH v prostředí příkazového řádku.

Trackpad a ukazatel myši AppyMouse na obrazovce pro tablety Windows
Uživatelé tabletů často postrádají ukazatel myši, zejména když obvykle používají notebooky. Dotykové smartphony a tablety mají mnoho výhod a jediným o...
Střední tlačítko myši nefunguje ve Windows 10
The prostřední tlačítko myši pomáhá procházet dlouhé webové stránky a obrazovky se spoustou dat. Pokud se to zastaví, budete nakonec používat klávesni...
Jak změnit levé a pravé tlačítko myši na počítači se systémem Windows 10
Je úplnou normou, že všechna zařízení počítačových myší jsou ergonomicky navržena pro praváky. K dispozici jsou však myší zařízení, která jsou speciál...