Postgres Selgitage kulusid

Postgres Selgitage Kulusid



Postgres on võimas ja laialdaselt kasutatav avatud lähtekoodiga relatsiooniandmebaasisüsteem, millel on tugev maine oma töökindluse, funktsionaalsuse ja jõudluse poolest.

Üks tööriistu, mis muudab Postgresi jõudluses valdavalt tugevaks, on selle käsk EXPLAIN, mis annab üksikasju SQL-päringu täitmisplaani kohta.

Mis on käsk EXPLAIN?

Käsk EXPLAIN kuvab täitmisplaani, mille PostgreSQL-i planeerija genereerib antud SQL-lause jaoks.







See sisaldab teavet iga päringuetapi teostamise hinnanguliste kulude kohta. Neid kulusid uurides saame aru, miks päring töötab aeglaselt ja kuidas seda optimeerida.



PostgreSQL-i kulude selgitamine

Peamiselt kasutame antud päringu kohta teabe toomiseks käsku EXPLAIN. Käsk väljastab päringu kohta teavet.



Võtke näiteks päring, mis on näidatud järgmises:





SELECT f.title, c.name
filmist f
LIITUMINE filmi_kategooria fc SEES f.filmi_id = fc.filmi_id
JOIN kategooria c ON fc.category_id = c.category_id;

Kui käivitame eelmisel lihtsal liitumisel käsu selgituse:

EXPLAIN SELECT f.title, c.name
filmist f
LIITUMINE filmi_kategooria fc SEES f.filmi_id = fc.filmi_id
JOIN kategooria c ON fc.category_id = c.category_id;

Peaksime saama väljundi, nagu on näidatud järgmises:



Võite märgata, et iga päringuetapi puhul tagastab PostgreSQL selle päringu hinnangulise maksumuse.

  1. startup_cost – see näitab hinnangulist maksumust toimingu lähtestamiseks enne ridade väljastamist.
  2. total_cost – kõigi ridade toomise kogukulu.
  3. Ridad – see määrab päringu poolt tagastatavate ridade hinnangulise arvu.
  4. Laius – see määrab kõigi toimingu poolt tagastatavate ridade keskmise baitide arvu.

PostgreSQL-i päringukulud on tähistatud suvalistes ühikutes, mis on määratud serveri konfiguratsioonis määratud kuluparameetritega.

Nende parameetrite võti on seq_page_cost, mis määrab vahemälus mitteoleva kettalehe toomise maksumuse.

Kui kasutate pgAdminit, saate selgituskäsu jaoks loetavama ja paremini esitletava diagrammi saamiseks kasutada funktsiooni 'selgitage analüüsi'. Näiteks:

Seejärel saate statistika ja hinnanguliste kulude vaatamiseks klõpsata igal sammul.

Päringute optimeerimine kulu alusel

Päringute optimeerimisel on oluline mõista, et madalam kulu tähendab tavaliselt kiiremat täitmist. Seetõttu saate oma päringuid väiksemate kuludega muuta.
Siin on mõned tegurid, mida tuleks arvesse võtta.

Kasutage tabelit Indeksid – Indeksid vähendavad oluliselt otsingupõhiste päringute kulusid, säilitades andmestruktuuri, mis võimaldab kiiremat otsingut.

Kasutage funktsioone ja operaatoreid targalt – Funktsioonide ja operaatorite kuluhinnang ei ole alati täpne, kuna tegelik maksumus võib suuresti sõltuda konkreetsetest andmetest. Seetõttu piirake funktsioonide ja keeruliste operaatorite kasutamist miinimumini.

Järeldus

Uurisime kulude mõistet käsus PostgreSQL ANALYZE. Arutasime, mida käsu väljund tähendab ja kuidas kuluväljundit kasutada, et analüüsida kõige tõhusamat viisi antud päringu käitamiseks.