Postgres explicar o custo

Postgres Explicar O Custo



O Postgres é um sistema de banco de dados relacional de código aberto poderoso e amplamente utilizado, com forte reputação por sua robustez, funcionalidade e desempenho.

Uma das ferramentas que tornam o Postgres predominantemente forte em desempenho é o comando EXPLAIN, que fornece detalhes sobre o plano de execução de uma consulta SQL.

O que é o comando EXPLAIN?

O comando EXPLAIN exibe o plano de execução que o planejador PostgreSQL gera para uma determinada instrução SQL.







Isso inclui informações sobre os custos estimados de execução de cada etapa da consulta. Ao examinar esses custos, podemos entender por que uma consulta é executada lentamente e como otimizá-la.



Custo de Explicação do PostgreSQL

Usamos principalmente o comando EXPLAIN para buscar as informações sobre uma determinada consulta. O comando gera algumas informações sobre a consulta.



Tomemos por exemplo a consulta que é mostrada a seguir:





SELECT f.title, c.name
DO filme f
JOIN film_category fc ON f.film_id = fc.film_id
JOIN categoria c ON fc.category_id = c.category_id;

Se executarmos o comando de explicação na junção simples anterior:

EXPLAIN SELECT f.title, c.name
DO filme f
JOIN film_category fc ON f.film_id = fc.film_id
JOIN categoria c ON fc.category_id = c.category_id;

Devemos obter a saída conforme mostrado a seguir:



Você pode notar que, para cada etapa da consulta, o PostgreSQL retorna o custo estimado dessa consulta.

  1. startup_cost – Mostra o custo estimado para inicializar a operação antes que ela possa começar a produzir as linhas.
  2. total_cost – O custo total para recuperar todas as linhas.
  3. Linhas – Determina o número estimado de linhas que são retornadas pela consulta.
  4. Largura – Determina o número médio de bytes de todas as linhas que são retornadas pela operação.

Os custos de consulta no PostgreSQL são indicados em unidades arbitrárias que são determinadas pelos parâmetros de custo definidos na configuração do servidor.

A chave desses parâmetros é seq_page_cost, que define o custo de uma busca de página de disco que não está no cache.

Se você estiver no pgAdmin, você pode usar o recurso “explicar análise” para obter um diagrama mais legível e bem apresentado para o comando de explicação. Por exemplo:

Você pode clicar em cada etapa para visualizar as estatísticas e os custos estimados.

Otimizando as consultas com base no custo

Na hora de otimizar suas consultas, é fundamental entender que o menor custo costuma significar uma execução mais rápida. Portanto, você pode modificar suas consultas por um custo menor.
Aqui estão alguns fatores a serem considerados:

Usar índices de tabela – Os índices reduzem significativamente o custo de consultas baseadas em pesquisa, mantendo uma estrutura de dados que permite uma pesquisa mais rápida.

Use funções e operadores com sabedoria – A estimativa de custo para funções e operadores nem sempre é precisa, pois o custo real pode depender muito dos dados específicos. Portanto, limite o uso de funções e operadores complexos ao mínimo.

Conclusão

Exploramos o conceito de custos em um comando PostgreSQL ANALYZE. Discutimos o que significa a saída do comando e como usar a saída de custo para analisar a maneira mais eficiente de executar uma determinada consulta.