Entender estatísticas

Concluído

Quando uma consulta é executada, ela precisa criar um plano para decidir como acessar os dados. Por exemplo, se uma consulta SELECT retornar todas as linhas, não haverá nenhum benefício em usar um índice e seria mais eficiente verificar toda a tabela. Nesse cenário, é simples planejar a consulta, mas a maioria dos planos de consulta não são tão simples de resolver.

Imagine um cenário em que você está executando uma consulta que pesquisou cada pedido entre US$ 10,00 e US$ 20,00. Inicialmente, não sabemos se a consulta retorna todos os dados na tabela ou apenas um pequeno subconjunto. Não saber isso dificulta o planejamento da estratégia de consulta até vermos os dados. Se soubermos que a tabela contém pedidos que têm um preço de compra entre US$ 1,00 e US$ 800,00, um índice poderá ser usado para pesquisar um pequeno subconjunto dos dados. No entanto, ainda pode não haver informações suficientes para gerar o plano de consulta adequado. Neste exemplo, embora os pedidos tenham um preço de compra entre US$ 1,00 e US$ 800,00, 95% dos pedidos estão entre US$ 10,00 e US$ 20,00, e uma verificação dos dados é, na verdade, o plano mais eficaz.

Com cenários como o do exemplo anterior, o PostgreSQL precisa de estatísticas detalhadas para poder usar o plano de consulta ideal.

Para monitorar estatísticas de planejamento e execução, há uma extensão do PostgreSQL chamada pg_stat_statements. pg_stat_statements é habilitado por padrão em Banco de Dados do Azure para PostgreSQL e permite que membros da função pg_read_all_stats consultem estatísticas usando várias exibições pg_stat. A seguinte consulta retorna a atividade de consulta usando a exibição pg_stat_activity:

SELECT * FROM pg_stat_activity;

Captura de tela da consulta pg_stat_activity.

Desativar pg_stat_statements

Se suas consultas forem exclusivas e você não repetir a mesma consulta periodicamente, os dados de consulta históricos serão menos úteis. Além disso, se você não usar as exibições pg_stat, eles não fornecerão nenhum benefício. Há uma sobrecarga para manter pg_stat_statements, que pode ser de até 50%, e você pode desativar o acompanhamento de pg_stat_statements nesses cenários.

Para desativar o acompanhamento de pg_stat_statements, execute as seguintes etapas:

  1. Entre no portal do Azure e selecione seu servidor do Banco de Dados do Azure para PostgreSQL.

  2. Selecione Parâmetros de servidor e navegue até a configuração pg_stat_statements.track.

    Captura de tela do comando pg_statements.

  3. Se você quiser desabilitar o acompanhamento, selecione NONE.

  4. Para obter um acompanhamento mais exato, selecione ALL.

  5. A configuração padrão é TOP.

  6. Clique em Salvar.