Sadržaj
Kad radimo s bazama podataka, postoji trenutak kada se više ne samo prikupljamo informacije koje nas se tiču, već i način na koji ih dobivamo, budući da će ovisno o konstrukciji upita to biti količina resursa koje naš upit troši, za to PostgreSQL nudi nam OBJASNITI alat s kojim vidimo kako se naš upit izvršava i sve što predstavlja.OBJAŠNJI I OBJAŠNJI ANALIZU
Ova dva alata glavna su baza pri traženju problema s performansama upita koje izvršavamo, unatoč njihovoj korisnosti nisu nešto novo budući da su uključeni u PostgreSQL Od svojih ranih godina, ali to ne znači da su zastarjeli ili zastarjeli, naprotiv, sazreli su da postanu alat sposoban za izradu najdetaljnijih izvješća o izvršavanju upita, uključujući i rezultate koje alat može dati dobiveno. u formatima poput XML ili JSON za kasniju analizu s drugim alatima.
U pgAdmin imamo na raspolaganju opciju za dobivanje grafikona rezultata OBJASNITI tako da umjesto analize brojeva možemo vidjeti grafikon i na taj način lakše otkriti probleme upita i mogućnosti poboljšanja.
Razlike između EXPLAIN i EXPLAIN ANALYZE
Možda se oba pojma koriste kao da su ista stvar, ali između njih imamo razlike, na primjer OBJASNITI daje nam ideju o tome kako planer upita namjerava izvršiti upit, ali ga umjesto toga ne izvršava OBJASNITE ANALIZU ako ga izvršite i to nam daje usporedbu između očekivane izvedbe i stvarne izvedbe dobivene u izvršenju. Prilikom lansiranja OBJASNITI preko pgAdmin Možemo birati između EXPLAIN i EXPLAIN ANALYZE, što će nam dati rezultat svakog dok ih odabiremo
Pogledajmo primjer kako koristiti ovaj alat, za to ćemo koristiti OBJASNITE ANALIZU, pogledajmo sljedeći kod:
OBJAŠNJI ANALIZU ODABERI lijevo (trakt_id, 5) Kao županijski_kod, SUM (hispanic_or_latino) Kao ukupan broj, SUM (bijeli_samo) Kao tot_white, SUM (spajanje (hispanic_or_latino, 0) - spajanje (white_alone, 0)) AS non_whROG šifra županije ***** PO šifra županije;
To je vrlo jednostavan upit u kojem zbrajamo polja, grupe i redoslijed prema jednom od polja. Ono što ćemo dobiti kao rezultat analize performansi bit će sljedeće:
GroupAggregate (cijena = 111,29… 151,93 redaka = 1478) (stvarno vrijeme = 6,099… 10,194 redaka = 14 petlji = 1) -> Sortiranje (cijena = 111,29… 114,98 redova = 1478) (stvarno vrijeme = 5,897… 6,565 redaka = 1478 petlji = 1) Tipka razvrstavanja: ("lijevo" ((trakt_id) :: tekst, 5)) Način razvrstavanja: brzo sortiranje Memorija: 136 kB -> Skeniranje slijeda na hisp_popu (cijena = 0,00… 33,48 redaka = 1478) (stvarno vrijeme = 0,390… 2,693 redovi = 1478 petlji = 1) Ukupno vrijeme izvođenja: 10.370 ms
Uložimo li malo truda u čitanje, rezultati će nam postupno biti lakši za čitanje, no ako nemamo puno vremena ili je rezultat vrlo opsežan, uvijek možemo vidjeti grafikon.
Kao što vidimo, brže je vidjeti rezultate na grafičkoj razini, idealno je koristiti oba alata i nadopuniti oba gledišta, to su iste informacije samo s različitim kutovima, bit će čistunaca koji samo žele raditi s naredbenom konzolom i to je u redu. Međutim, opsežni stručnjak za baze podataka mora upotrijebiti sve alate koji su mu na raspolaganju kako bi poboljšao svoj rad.
Ovime završavamo vodič, uz korištenje ovih alata već ćemo biti u mogućnosti otkriti uzroke koji čine da naši upiti ne budu brzi ili mogućnosti za poboljšanje radi optimizacije upita.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod