Vizualizările din PostgreSQL sunt tabele grafice care afișează date din tabelele corespunzătoare. Vizualizările comune pot fi, de asemenea, modificate. PostgreSQL duce conceptul de vizualizări la următoarea etapă permițând vizualizărilor să stocheze material informațiile, denumite vizualizări materializate. O vizualizare materializată păstrează rezultatul unei interogări complicate, care necesită mult timp, permițându-vă să interogați rapid rezultatele în orice moment. Punctele de vedere materializate sunt frecvent utilizate în depozite de date și aplicații de business intelligence, deoarece sunt utile în situații care necesită acces rapid la date.
De ce să folosiți vizualizări materializate?
Dacă comanda de vizualizare este prea lentă pentru dvs., este posibil să preferați să utilizați o vizualizare concretizată. Vizualizările materializate au multă versatilitate, permițându-vă să păstrați o reprezentare materială în baza de date cu timpi de acces mai scurți. Să presupunem că vi se cere să creați o interogare în baza de date pentru a vă alătura câtorva tabele, a elimina rândurile din colecția unită și a sorta tabelele în diferite moduri. Aceasta ar putea fi o interogare complicată și consumatoare de timp și, fără vizualizări concretizate, veți ajunge să utilizați o vizualizare concretizată pentru a aborda această dilemă. Acest articol vă învață cum să utilizați vizualizări materializate în PostgreSQL.
Sintaxă
>> CREAȚI VIZUALIZARE MATERIALIZATĂ view_name AS interogare CU [NU] DATE;Explicația pentru această viziune generală este următoarea:
- View_name: Titlul vizualizării care va fi creată cu instrucțiunea CREATE MATERIALIZED VIEW.
- Interogare: Interogarea care obține datele din tabelele corespunzătoare.
- CU [NU] DATE: alegeți opțiunea CU DATE pentru a încorpora date de informații în vizualizarea materializată în momentul dezvoltării; în caz contrar, alegeți FĂRĂ DATE. Vizualizarea este marcată ca de neînțeles dacă utilizați opțiunea CU [NU] DATE, ceea ce înseamnă că nu veți putea căuta informații din vizualizare decât dacă ați încărcat mai întâi date în ea.
Cum se utilizează vizualizări materializate
Porniți shell-ul dvs. de linie de comandă PostgreSQL pentru a începe să lucrați la vizualizări materializate.
Furnizați numele serverului, baza de date la care doriți să lucrați, numărul portului și numele de utilizator pentru a începe să utilizați shell-ul de comandă. Lăsați aceste spații goale dacă doriți să utilizați sistemul implicit.
Exemplul 1: Vizualizare simplă
Pentru a înțelege vizualizarea materializată, trebuie mai întâi să înțelegeți vizualizări simple. Deci, creați noul tabel, „Student”, folosind comanda CREATE TABLE, așa cum se adaugă.
>> CREATE TABLE Student (sid serial CHEIE PRIMARĂ, nume VARCHAR (100) NOT NULL, vârstă VARCHAR (100) NOT NULL);
După aceea, introduceți date în el folosind interogarea INSERT.
Aduceți înregistrările tabelului „Student” folosind instrucțiunea SELECT pentru vizualizarea simplă.
>> SELECT * DE LA Student;
Exemplul 2: Vizualizare simplificată materializată
Acum, este timpul să acoperim viziunea materializată. Vom folosi tabelul „Student” pentru a crea o vizualizare concretizată. Vom crea o vizualizare materializată numită „std_view” folosind comanda „CREATE MATERIALIZED VIEW”. În această vizualizare, vom prelua câmpul de nume student „sname” din tabelul „Student”, grupat și sortat în ordine crescătoare în coloana „sname”.
>> CREAȚI VIZUALIZARE MATERIALIZATĂ std_view AS SELECT sname FROM Student GROUP BY sname ORDER BY sname;
Acum, folosind interogarea SELECT pentru a executa vizualizarea, vom returna numele studenților în coloana „sname” din tabelul „Student”.
>> SELECT * DIN std_view;
Exemplul 3: Vizualizare materializată utilizând clauza WHERE
Acum, vom crea o vizualizare materializată folosind clauza WHERE. Luați în considerare următorul tabel „Student” cu câteva modificări ale valorilor sale.
Apoi, vom crea o vizualizare concretizată denumită „teststd” utilizând interogarea „CREARE VIZUALIZARE MATERIALIZATĂ”. Vom selecta înregistrările din tabelul „Student” unde valoarea coloanei „vârstă” este mai mare decât „25” folosind clauza WHERE. Interogarea funcționează corect, așa cum se vede în imagine.
>> CREAȚI VIZUALIZARE MATERIALIZATĂ teststd AS SELECT sid, sname, age FROM Student WHERE age> '25';
În cele din urmă, vom executa vizualizarea materializată pe care tocmai am creat-o folosind comanda SELECT, ca mai jos. Veți vedea că va returna toate înregistrările din tabelul „Student” în care coloana „vârstă” are o valoare mai mare decât „25.'
>> SELECT * DIN teststd;
Exemplul 4: Reîmprospătați vizualizarea materializată utilizând clauza fără date
În acest exemplu, vom crea o vizualizare materializată, în care vom folosi clauza WITH NO DATA pentru a reîmprospăta vizualizarea. Să presupunem că următorul tabel „Student” cu unele modificări ale valorilor sale.
Vom crea acum vizualizarea „teststd” materializată. Această vizualizare va selecta înregistrările din tabelul „elev” în care vârsta elevilor este mai mică de „40”.„Înregistrările preluate vor fi grupate și sortate în ordine crescătoare în coloana„ sid ”. La sfârșitul interogării, vom folosi clauza WITH NO DATA pentru a indica faptul că interogarea nu va salva nicio informație într-o vizualizare concretizată. Vizualizarea de mai jos ar trebui să efectueze cu succes aceste acțiuni.
>> CREAȚI VIZUALIZARE MATERIALIZATĂ teststd AS SELECT sid, sname, age FROM Student WHERE age < '40' GROUP BY sid ORDER BY sid WITH NO DATA;
Când adăugați clauza „FĂRĂ DATE” la o vizualizare materializată, aceasta creează una goală. Această vizualizare materializată nu este interogabilă. După cum puteți vedea în imaginea următoare, acesta nu preia înregistrările în vizualizarea nou creată.
Instrucțiunea REFRESH MATERIALIZED VIEW este utilizată pentru a importa datele într-o vizualizare materializată. Completați vizualizarea materializată executând următoarea interogare REFRESH MATERIALIZED VIEW în shell. După cum puteți vedea, această interogare a funcționat eficient.
>> REFRESH MATERIALIZED VIEW teststd;
Din nou, preluați înregistrările vizualizării materializate „teststd” folosind instrucțiunea SELECT din shell. De data aceasta, interogarea SELECT funcționează corect, deoarece instrucțiunea „REFRESH” a încărcat conținut în vizualizarea materializată.
Exemplul 5: Drop Materialized View
Următoarea comandă va șterge o vizualizare concretizată.
>> DROP VIZUALIZARE MATERIALIZATĂ std_view;
Concluzie
Acest articol v-a arătat cum să utilizați vizualizări materializate prin clauza WHERE și interogările REFRESH din shell-ul liniei de comandă.