Jak używać zmaterializowanych widoków PostgreSQL

Jak używać zmaterializowanych widoków PostgreSQL

Widoki w PostgreSQL to tabele graficzne, które wyświetlają dane z odpowiednich tabel. Wspólne widoki można również zmodyfikować. PostgreSQL przenosi koncepcję poglądów na następny etap, umożliwiając wyświetleniu niezbogone przechowywanie informacji, określane jako zmaterializowane poglądy. Zatertylizowany widok zachowuje wyjście czasochłonnego, skomplikowanego zapytania, umożliwiając szybkie zapytanie o wyniki w dowolnym momencie. Zmaterializowane punkty widokowe są często używane w magazynach danych i aplikacjach inteligencji biznesowej, ponieważ są one pomocne w sytuacjach, które wymagają szybkiego dostępu do danych.

Dlaczego warto używać zmaterializowanych widoków?

Jeśli polecenie widoku jest dla Ciebie zbyt ospałe, możesz użyć zmaterializowanego widoku. Zateratyzowane widoki mają dużą wszechstronność, umożliwiając zachowanie reprezentacji istotnie w bazie danych o krótszych czasach dostępu. Załóżmy, że musisz utworzyć zapytanie do bazy danych, aby dołączyć do kilku tabel, usunąć wiersze z połączonej kolekcji i sortować tabele na różne sposoby. Może to być skomplikowane i czasochłonne zapytanie, a bez zmaterializowanych widok. W tym artykule uczy, jak używać zmaterializowanych poglądów w PostgreSQL.

Składnia

>> Utwórz zmaterializowaną nazwę View View jako zapytanie z [bez] danych;

Wyjaśnienie tego ogólnego poglądu jest następujące:

  • View_name: Tytuł widoku, który ma zostać utworzony za pomocą instrukcji Utwórz materializowane.
  • Zapytanie: Zapytanie, które uzyskuje dane z odpowiednich tabel.
  • Z [bez] danych: Wybierz opcję z danymi, aby włączyć dane informacji do zmaterializowanego widoku w momencie rozwoju; W przeciwnym razie wybierz bez danych. Widok jest oznaczony jako niezrozumiały, jeśli używasz opcji z [bez] danych, co oznacza, że ​​nie będziesz mógł wyszukiwać informacji z widoku, chyba że najpierw załadujesz dane.

Jak używać zmaterializowanych widoków

Rozpocznij swoją powłokę wiersza polecenia PostgreSQL, aby rozpocząć pracę nad zmaterializowanymi widokami.

Podaj nazwę serwera, bazę danych, nad którą chcesz pracować, numer portu i nazwę użytkownika, aby zacząć używać powłoki poleceń. Pozostaw te przestrzenie puste, jeśli chcesz użyć domyślnego systemu.

Przykład 1: Prosty widok

Aby zrozumieć zmaterializowany pogląd, najpierw musisz zrozumieć proste widoki. Utwórz więc nową tabelę, „uczeń”, używając polecenia Utwórz tabelę, zgodnie z dołączeniem.

>> Utwórz tabelę Student (SID Serial Primary Key, Sname Varchar (100) nie null, wiek varchar (100) nie null);

Następnie wstaw do niego dane za pomocą zapytania Wstaw.

Pobierz zapisy tabeli „studenckiej” za pomocą instrukcji SELECT dla prostego widoku.

>> Wybierz * od studenta;

Przykład 2: prosty zmaterializowany widok

Teraz nadszedł czas, aby pokryć zmaterializowany widok. Użyjemy tabeli „Student”, aby stworzyć zmaterializowany widok. Utworzymy zmaterializowany widok o nazwie „std_view” za pomocą polecenia „Utwórz materializowane widok”. W tym widoku będziemy pobierać pole nazwy studenta „Sname” z tabeli „Student”, zgrupowani i posortowani w kolejności rosnącej w kolumnie „Sname”.

>> Utwórz zmaterializowany widok STD_VIEW Jak wybierz Sname z Grupy Student Group autorstwa Sname Order przez Sname;

Teraz, używając zapytania Wybierz do wykonania widoku, zwrócimy nazwiska uczniów w kolumnie „Sname” tabeli „Student”.

>> Wybierz * ze std_view;

Przykład 3: Widok zmaterializowany przy użyciu klauzuli Where

Teraz utworzymy zmaterializowany widok za pomocą klauzuli Where. Rozważ następującą tabelę „ucznia” z pewnymi zmianami jej wartości.

Następnie utworzymy zmaterializowany widok o nazwie „TestStd” za pomocą zapytania „Utwórz materializowany widok”. Wybierzemy zapisy tabeli „Student”, w której wartość kolumny „wiek” jest większa niż „25” za pomocą klauzuli Where. Zapytanie działa poprawnie, jak widać na zdjęciu.

>> Utwórz zmaterializowany test TestStd jako SID, Sname, wiek od studenta, gdzie wiek> „25”;

Na koniec wykonamy zmaterializowany widok, który właśnie utworzyliśmy za pomocą polecenia Select, jak poniżej. Zobaczysz, że zwróci wszystkie rekordy z tabeli „Student”, w której kolumna „wiek” ma wartość większą niż „25.'

>> Wybierz * z teststd;

Przykład 4: Odśwież zmaterializowany widok przy użyciu bez klauzuli danych

W tym przykładzie utworzymy zmaterializowany widok, w którym użyjemy klauzuli bez danych, aby odświeżyć widok. Załóżmy, że następująca tabela „studentów” z pewnymi zmianami w swoich wartościach.

Teraz utworzymy zmaterializowany widok „teststd”. Ten widok wybierze rekordy z tabeli „Student”, w której wiek studentów jest mniejszy niż 40.„Pobrane rekordy zostaną zgrupowane i posortowane zgodnie z kolejnością rosnącą w kolumnie„ SID ”. Na końcu zapytania wykorzystamy klauzulę bez danych, aby wskazać, że zapytanie nie zapisuje żadnych informacji w zmaterializowanym widoku. Widok pokazany poniżej powinien z powodzeniem wykonywać te akcje.

>> Utwórz zmaterializowany test Widok jako wybrany sid, sname, wiek od ucznia, gdzie wiek < '40' GROUP BY sid ORDER BY sid WITH NO DATA;

Gdy dodasz klauzulę „bez danych” do zmaterializowanego widoku, tworzy to pustą. Ten zmaterializowany widok nie podlega zapytaniu. Jak widać na poniższym obrazie, nie pobiera rekordów w nowo utworzonym widoku.

Odświeżnia zmaterializowana instrukcja widoku służy do importowania danych do zmaterializowanego widoku. Wypełnij zmaterializowany widok, uruchamiając następujące odświeżenie zmaterializowane zapytanie w skorupce. Jak widać, to zapytanie działało skutecznie.

>> Odśwież zmaterializowany widok teststd;

Ponownie, pobieraj rekordy zmaterializowanego widoku „TestStd” za pomocą instrukcji Select in the Shell. Tym razem zapytanie Wybierz działa poprawnie, ponieważ instrukcja „odświeżania” załadowała zawartość do zmaterializowanego widoku.

Przykład 5: Zaspokajany widok z upuszczeniem

Następujące polecenie usunie zmaterializowany widok.

>> upuść materializowane widok std_view;

Wniosek

W tym artykule pokazano, jak używać zmaterializowanych widoków za pośrednictwem klauzuli i odświeżania zapytań w powładzie wiersza polecenia.