Ipaliwanag ng mga Postgres ang Gastos

Ipaliwanag Ng Mga Postgres Ang Gastos



Ang Postgres ay isang malakas at malawakang ginagamit na open-source relational database system na may malakas na reputasyon para sa tibay, functionality, at performance nito.

Ang isa sa mga tool na nagpapalakas sa pagganap ng Postgres ay ang EXPLAIN command nito na nagbibigay ng mga detalye sa execution plan ng isang SQL query.

Ano ang EXPLAIN Command?

Ang EXPLAIN command ay nagpapakita ng execution plan na binubuo ng PostgreSQL planner para sa isang ibinigay na SQL statement.







Kabilang dito ang isang impormasyon tungkol sa mga tinantyang gastos sa pagsasagawa ng bawat hakbang ng query. Sa pamamagitan ng pagsusuri sa mga gastos na ito, mauunawaan natin kung bakit mabagal na tumatakbo ang isang query at kung paano ito i-optimize.



PostgreSQL Ipaliwanag ang Gastos

Pangunahing ginagamit namin ang EXPLAIN command upang kunin ang impormasyon tungkol sa isang naibigay na query. Ang command ay naglalabas ng ilang impormasyon tungkol sa query.



Kunin halimbawa ang query na ipinapakita sa sumusunod:





SELECT f.title, c.name
MULA sa pelikula f
SUMALI sa film_category fc SA f.film_id = fc.film_id
SUMALI sa kategorya c SA fc.category_id = c.category_id;

Kung patakbuhin namin ang explain command sa nakaraang simpleng pagsali:

IPALIWANAG PUMILI f.pamagat, c.pangalan
MULA sa pelikula f
SUMALI sa film_category fc SA f.film_id = fc.film_id
SUMALI sa kategorya c SA fc.category_id = c.category_id;

Dapat nating makuha ang output tulad ng ipinapakita sa sumusunod:



Maaari mong mapansin na para sa bawat hakbang ng query, ibinabalik ng PostgreSQL ang tinantyang halaga ng query na iyon.

  1. startup_cost – Ipinapakita nito ang tinantyang gastos upang simulan ang operasyon bago nito masimulan ang pag-output ng mga row.
  2. total_cost – Ang kabuuang gastos para makuha ang lahat ng row.
  3. Rows – Tinutukoy nito ang tinantyang bilang ng mga row na ibinalik ng query.
  4. Lapad - Tinutukoy nito ang average na bilang ng mga byte ng lahat ng mga hilera na ibinalik ng operasyon.

Ang mga gastos sa query sa PostgreSQL ay tinutukoy sa mga arbitrary na unit na tinutukoy ng mga parameter ng gastos na itinakda sa configuration ng server.

Ang susi ng mga parameter na ito ay seq_page_cost na nagtatakda ng halaga ng isang disk page fetch na wala sa cache.

Kung ikaw ay nasa pgAdmin, maaari mong gamitin ang feature na 'explain analysis' para makakuha ng mas nababasa at mahusay na ipinakitang diagram para sa explain command. Halimbawa:

Pagkatapos ay maaari kang mag-click sa bawat hakbang upang tingnan ang mga istatistika at tinantyang mga gastos.

Pag-optimize sa Mga Query Batay sa Gastos

Kapag ino-optimize ang iyong mga query, mahalagang maunawaan na ang mas mababang gastos ay karaniwang nangangahulugan ng mas mabilis na pagpapatupad. Samakatuwid, maaari mong baguhin ang iyong mga query para sa mas mababang halaga.
Narito ang ilang salik na dapat isaalang-alang:

Gumamit ng mga Index ng talahanayan – Malaking binabawasan ng mga index ang gastos ng mga query na nakabatay sa paghahanap sa pamamagitan ng pagpapanatili ng istruktura ng data na nagbibigay-daan para sa mas mabilis na paghahanap.

Gumamit ng Mga Function at Operator nang matalino – Ang pagtatantya ng gastos para sa mga function at operator ay hindi palaging tumpak, dahil ang aktwal na gastos ay maaaring nakadepende nang husto sa partikular na data. Samakatuwid, limitahan ang paggamit ng mga function at kumplikadong mga operator sa pinakamababa.

Konklusyon

Ginalugad namin ang konsepto ng mga gastos sa isang utos ng PostgreSQL ANALYZE. Tinalakay namin kung ano ang ibig sabihin ng output ng command at kung paano gamitin ang output ng gastos upang pag-aralan ang pinakamabisang paraan upang patakbuhin ang isang naibigay na query.