Postgres Objasnite cijenu

Postgres Objasnite Cijenu



Postgres je moćan i široko korišten sustav relacijskih baza podataka otvorenog koda sa snažnom reputacijom zbog svoje robusnosti, funkcionalnosti i performansi.

Jedan od alata koji Postgres čini pretežno jakim u izvedbi je njegova naredba EXPLAIN koja pruža pojedinosti o planu izvršenja SQL upita.

Što je naredba EXPLAIN?

Naredba EXPLAIN prikazuje plan izvršenja koji PostgreSQL planer generira za danu SQL naredbu.







To uključuje informacije o procijenjenim troškovima izvođenja svakog koraka upita. Ispitivanjem ovih troškova možemo razumjeti zašto se upit izvodi sporo i kako ga optimizirati.



PostgreSQL Objasnite cijenu

Uglavnom koristimo naredbu EXPLAIN za dohvaćanje informacija o danom upitu. Naredba ispisuje neke informacije o upitu.



Uzmimo za primjer upit koji je prikazan u nastavku:





SELECT f.title, c.name
IZ filma f
PRIDRUŽITE SE film_kategoriji fc ON f.film_id = fc.film_id
PRIDRUŽITE se kategoriji c NA fc.category_id = c.category_id;

Ako pokrenemo naredbu objašnjenja na prethodnom jednostavnom spajanju:

OBJASNI ODABIR f.naslov, c.ime
IZ filma f
PRIDRUŽITE SE film_kategoriji fc ON f.film_id = fc.film_id
PRIDRUŽITE se kategoriji c NA fc.category_id = c.category_id;

Trebali bismo dobiti izlaz kao što je prikazano u nastavku:



Možda ćete primijetiti da za svaki korak upita PostgreSQL vraća procijenjenu cijenu tog upita.

  1. startup_cost – Prikazuje procijenjeni trošak za pokretanje operacije prije nego što može početi ispisivati ​​retke.
  2. total_cost – Ukupni trošak za dohvaćanje svih redaka.
  3. Redovi – Određuje procijenjeni broj redaka koje vraća upit.
  4. Širina – Ovo određuje prosječni broj bajtova svih redaka koje vraća operacija.

Troškovi upita u PostgreSQL-u označeni su proizvoljnim jedinicama koje su određene parametrima troškova koji su postavljeni u konfiguraciji poslužitelja.

Ključ ovih parametara je seq_page_cost koji postavlja cijenu dohvaćanja stranice diska koja nije u predmemoriji.

Ako ste na pgAdmin-u, možete upotrijebiti značajku 'explain analysis' kako biste dobili čitljiviji i bolje predstavljen dijagram za naredbu objašnjenja. Na primjer:

Zatim možete kliknuti na svaki korak kako biste vidjeli statistiku i procijenjene troškove.

Optimiziranje upita na temelju cijene

Kada optimizirate svoje upite, važno je razumjeti da niža cijena obično znači brže izvršenje. Stoga možete izmijeniti svoje upite po nižoj cijeni.
Evo nekoliko čimbenika koje treba uzeti u obzir:

Koristite indekse tablice – Indeksi značajno smanjuju troškove upita temeljenih na pretraživanju održavajući strukturu podataka koja omogućuje brže pretraživanje.

Mudro koristite funkcije i operatore – Procjena troškova za funkcije i operatere nije uvijek točna, budući da stvarni trošak može uvelike ovisiti o specifičnim podacima. Stoga ograničite upotrebu funkcija i složenih operatora na minimum.

Zaključak

Istražili smo koncept troškova u naredbi PostgreSQL ANALYZE. Razgovarali smo o tome što izlaz naredbe znači i kako koristiti izlaz troška za analizu najučinkovitijeg načina za pokretanje određenog upita.