Postgres paaiškinti išlaidas

Postgres Paaiskinti Islaidas



Postgres yra galinga ir plačiai naudojama atvirojo kodo reliacinė duomenų bazių sistema, turinti tvirtą reputaciją dėl savo tvirtumo, funkcionalumo ir našumo.

Vienas iš įrankių, dėl kurių „Postgres“ daugiausia veikia, yra jos komanda EXPLAIN, kurioje pateikiama išsami informacija apie SQL užklausos vykdymo planą.

Kas yra EXPLAIN komanda?

Komanda EXPLAIN rodo vykdymo planą, kurį PostgreSQL planuotojas sugeneruoja tam tikram SQL sakiniui.







Tai apima informaciją apie numatomas kiekvieno užklausos veiksmo atlikimo išlaidas. Išnagrinėję šias išlaidas galime suprasti, kodėl užklausa vykdoma lėtai ir kaip ją optimizuoti.



PostgreSQL paaiškinkite išlaidas

Mes daugiausia naudojame komandą EXPLAIN norėdami gauti informaciją apie pateiktą užklausą. Komanda išveda tam tikrą informaciją apie užklausą.



Paimkite, pavyzdžiui, užklausą, kuri parodyta toliau:





PASIRINKITE f.title, c.name
IŠ filmo f
PRISIJUNK prie filmo_kategorijos fc ON f.film_id = fc.film_id
PRISIJUNGTI prie kategorijos c ĮJUNGTA fc.kategorijos_id = c.kategorijos_id;

Jei vykdysime paaiškinimo komandą ankstesniame paprastame prisijungime:

EXPLAIN SELECT F.title, c.name
IŠ filmo f
PRISIJUNK prie filmo_kategorijos fc ON f.film_id = fc.film_id
PRISIJUNGTI prie kategorijos c ĮJUNGTA fc.kategorijos_id = c.kategorijos_id;

Turėtume gauti išvestį, kaip parodyta toliau:



Galite pastebėti, kad kiekvienam užklausos veiksmui PostgreSQL pateikia apskaičiuotą tos užklausos kainą.

  1. startup_cost – rodo numatomas operacijos inicijavimo išlaidas prieš pradedant išvesti eilutes.
  2. total_cost – bendra visų eilučių gavimo kaina.
  3. Eilutės – nustato numatomą eilučių, kurias grąžina užklausa, skaičių.
  4. Plotis – tai nustato vidutinį visų eilučių, kurias grąžina operacija, baitų skaičių.

Užklausos išlaidos PostgreSQL žymimos savavališkais vienetais, kurie nustatomi pagal sąnaudų parametrus, nustatytus serverio konfigūracijoje.

Šių parametrų raktas yra seq_page_cost, kuris nustato disko puslapio gavimo, kuris nėra talpykloje, kainą.

Jei naudojate pgAdmin, galite naudoti funkciją „paaiškinti analizuoti“, kad gautumėte lengviau skaitomą ir geriau pateiktą paaiškinimo komandos diagramą. Pavyzdžiui:

Tada galite spustelėti kiekvieną veiksmą, kad peržiūrėtumėte statistiką ir apskaičiuotas išlaidas.

Užklausų optimizavimas pagal kainą

Optimizuojant užklausas būtina suprasti, kad mažesnė kaina paprastai reiškia greitesnį vykdymą. Todėl galite keisti savo užklausas už mažesnę kainą.
Štai keletas veiksnių, į kuriuos reikia atsižvelgti:

Naudokite lentelę Indeksai – Indeksai žymiai sumažina paieška pagrįstų užklausų kainą, nes palaiko duomenų struktūrą, leidžiančią greičiau ieškoti.

Išmintingai naudokite funkcijas ir operatorius – Funkcijų ir operatorių sąnaudų įvertinimas ne visada yra tikslus, nes faktinės išlaidos gali labai priklausyti nuo konkrečių duomenų. Taigi apribokite funkcijų ir sudėtingų operatorių naudojimą iki minimumo.

Išvada

Išnagrinėjome išlaidų sąvoką naudodami komandą PostgreSQL ANALYZE. Aptarėme, ką reiškia komandos išvestis ir kaip panaudoti sąnaudų išvestį analizuojant efektyviausią tam tikros užklausos vykdymo būdą.