Postgres Pojasni stroške

Postgres Pojasni Stroske



Postgres je zmogljiv in široko uporabljen odprtokodni sistem relacijskih baz podatkov z močnim ugledom zaradi svoje robustnosti, funkcionalnosti in zmogljivosti.

Eno od orodij, zaradi katerih je Postgres pretežno močan v zmogljivosti, je njegov ukaz EXPLAIN, ki zagotavlja podrobnosti o načrtu izvajanja poizvedbe SQL.

Kaj je ukaz EXPLAIN?

Ukaz EXPLAIN prikaže načrt izvajanja, ki ga načrtovalec PostgreSQL ustvari za dani stavek SQL.







To vključuje informacije o predvidenih stroških izvajanja vsakega koraka poizvedbe. Če preučimo te stroške, lahko razumemo, zakaj poizvedba teče počasi in kako jo optimizirati.



PostgreSQL Pojasni stroške

Ukaz EXPLAIN večinoma uporabljamo za pridobivanje informacij o dani poizvedbi. Ukaz izpiše nekaj informacij o poizvedbi.



Vzemimo za primer poizvedbo, ki je prikazana v naslednjem:





IZBERITE f.naslov, c.ime
IZ filma f
PRIDRUŽITE SE filmski_kategoriji fc ON f.film_id = fc.film_id
PRIDRUŽI se kategoriji c ON fc.category_id = c.category_id;

Če zaženemo ukaz za razlago na prejšnji preprosti pridružitvi:

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

Dobiti bi morali rezultat, kot je prikazano v naslednjem:



Morda boste opazili, da za vsak korak poizvedbe PostgreSQL vrne ocenjeno ceno te poizvedbe.

  1. startup_cost – Prikazuje ocenjene stroške inicializacije operacije, preden lahko začne izpisovati vrstice.
  2. total_cost – skupni stroški za pridobivanje vseh vrstic.
  3. Vrstice – Določa ocenjeno število vrstic, ki jih vrne poizvedba.
  4. Širina – To določa povprečno število bajtov vseh vrstic, ki jih vrne operacija.

Stroški poizvedbe v PostgreSQL so označeni v poljubnih enotah, ki so določene s stroškovnimi parametri, ki so nastavljeni v konfiguraciji strežnika.

Ključ teh parametrov je seq_page_cost, ki nastavi stroške pridobivanja strani diska, ki ni v predpomnilniku.

Če uporabljate pgAdmin, lahko uporabite funkcijo »razloži analizo«, da dobite bolj berljiv in dobro predstavljen diagram za ukaz pojasnila. Na primer:

Nato lahko kliknete vsak korak, da si ogledate statistiko in ocenjene stroške.

Optimizacija poizvedb na podlagi stroškov

Ko optimizirate svoje poizvedbe, je bistveno razumeti, da nižji stroški običajno pomenijo hitrejšo izvedbo. Zato lahko spremenite svoje poizvedbe za nižje stroške.
Upoštevati je treba nekaj dejavnikov:

Uporabite indekse tabele – Indeksi znatno zmanjšajo stroške poizvedb, ki temeljijo na iskanju, saj ohranjajo strukturo podatkov, ki omogoča hitrejše iskanje.

Funkcije in operatorje uporabljajte pametno – Ocena stroškov za funkcije in operaterje ni vedno točna, saj so dejanski stroški lahko močno odvisni od specifičnih podatkov. Zato omejite uporabo funkcij in kompleksnih operatorjev na minimum.

Zaključek

Raziskali smo koncept stroškov v ukazu PostgreSQL ANALYZE. Razpravljali smo o tem, kaj pomeni izhod ukaza in kako uporabiti izhod stroškov za analizo najučinkovitejšega načina za izvajanje dane poizvedbe.