Postgres explica el cost

Postgres Explica El Cost



Postgres és un sistema de bases de dades relacionals de codi obert potent i àmpliament utilitzat amb una gran reputació per la seva robustesa, funcionalitat i rendiment.

Una de les eines que fan que Postgres sigui predominantment fort en el rendiment és la seva comanda EXPLAIN que proporciona detalls sobre el pla d'execució d'una consulta SQL.

Què és l'ordre EXPLAIN?

L'ordre EXPLAIN mostra el pla d'execució que genera el planificador de PostgreSQL per a una sentència SQL determinada.







Això inclou una informació sobre els costos estimats de realitzar cada pas de consulta. En examinar aquests costos, podem entendre per què una consulta s'executa lentament i com optimitzar-la.



PostgreSQL Expliqueu el cost

Utilitzem principalment l'ordre EXPLAIN per obtenir la informació sobre una consulta determinada. L'ordre dóna informació sobre la consulta.



Prengui per exemple la consulta que es mostra a continuació:





SELECT f.title, c.name
DE la pel·lícula f
UNEIX-TE a la categoria_film fc ON f.film_id = fc.film_id
UNEIX-TE a la categoria c ON fc.category_id = c.category_id;

Si executem l'ordre explicar a la unió simple anterior:

EXPLEAR SELECT f.title, c.name
DE la pel·lícula f
UNEIX-TE a la categoria_film fc ON f.film_id = fc.film_id
UNEIX-TE a la categoria c ON fc.category_id = c.category_id;

Hauríem d'obtenir la sortida tal com es mostra a continuació:



És possible que observeu que per a cada pas de la consulta, PostgreSQL retorna el cost estimat d'aquesta consulta.

  1. startup_cost: mostra el cost estimat per inicialitzar l'operació abans que pugui començar a enviar les files.
  2. cost_total: el cost total per recuperar totes les files.
  3. Files: determina el nombre estimat de files que retorna la consulta.
  4. Amplada: determina el nombre mitjà de bytes de totes les files que retorna l'operació.

Els costos de consulta a PostgreSQL es denoten en unitats arbitràries que es determinen pels paràmetres de cost que s'estableixen a la configuració del servidor.

La clau d'aquests paràmetres és seq_page_cost, que estableix el cost de l'obtenció d'una pàgina de disc que no es troba a la memòria cau.

Si esteu a pgAdmin, podeu utilitzar la funció 'explica analitzar' per obtenir un diagrama més llegible i ben presentat per a l'ordre explicar. Per exemple:

A continuació, podeu fer clic a cada pas per veure les estadístiques i els costos estimats.

Optimització de les consultes en funció del cost

Quan optimitzeu les vostres consultes, és essencial entendre que el cost més baix normalment significa una execució més ràpida. Per tant, podeu modificar les vostres consultes per un cost més baix.
Aquests són alguns factors a tenir en compte:

Utilitzeu índexs de taula – Els índexs redueixen significativament el cost de les consultes basades en la cerca mantenint una estructura de dades que permet una cerca més ràpida.

Utilitzeu les funcions i els operadors amb prudència – L'estimació de costos per a funcions i operadors no sempre és precisa, ja que el cost real pot dependre molt de les dades específiques. Per tant, limiteu al mínim l'ús de funcions i operadors complexos.

Conclusió

Hem explorat el concepte de costos en una comanda PostgreSQL ANALYZE. Hem comentat què significa la sortida de l'ordre i com utilitzar la sortida de costos per analitzar la manera més eficient d'executar una consulta determinada.