Como mergulhar no otimizador do PostgreSQL e rastrear cada passo necessário para otimizar a consulta?


8

Assim como a estrutura MEMO no SQL Server, que é uma espécie de "trilha de papel" das etapas que o otimizador executa para otimizar a consulta. O PostgreSQL possui uma estrutura semelhante que registra as etapas que o otimizador executa?

Respostas:


3

Não, não há estrutura ou função detalhada de auditoria / relatório do otimizador.

Sua melhor ferramenta é 'gdb'. Ao contrário do MS SQL Server, o PostgreSQL é de código aberto; você pode criar com os símbolos de depuração ativados, anexar um depurador e rastrear exatamente o que está fazendo.

Isso não significa que é fácil, é claro. Um conjunto fixo de pontos de interrupção e macros gdb para produzir um rastro do que o planejador / otimizador está fazendo seria muito bom. Não estou ciente de nenhuma dessas ferramentas neste momento.

gdbpontos de perfrastreamento do usuário , ou pontos de rastreamento do espaço do usuário, serão muito úteis para você.

Você também pode ativar o log de depuração detalhado e alguns dos parâmetros de rastreamento e, em postgresql.confseguida, examinar os arquivos de log detalhados resultantes.

Há alguma documentação (à qual eu adicionei informações sobre descarte de árvores de planos etc.) nas Perguntas frequentes do desenvolvedor do PostgreSQL: https://wiki.postgresql.org/wiki/Developer_FAQ . Isso pode ser útil. Você também deve ler os principais documentos do desenvolvedor.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.