Existe uma maneira de registrar consultas que usam varreduras sequenciais no PostgreSQL? Ou apenas registre tudo e depois grep para seqscans?
Existe uma maneira de registrar consultas que usam varreduras sequenciais no PostgreSQL? Ou apenas registre tudo e depois grep para seqscans?
Não conheço uma maneira de registrar apenas varreduras sequenciais. Apenas uma pequena observação: seqscans não são ruins, você os obterá (especialmente para tabelas menores) o tempo todo.
Por outro lado, você pode definitivamente registrar tudo, se quiser, e há várias maneiras.
O mais fácil é provavelmente
Isso registrará todas as consultas que passarem pelo analisador :
Outra maneira interessante de conseguir isso é definir
log_min_duration_statement
um valor (muito) baixo:A diferença entre os dois é que o último também registrará os parâmetros reais passados para as funções.
Notas:
A resposta parece ser registrar tudo (ou pelo menos consultas de longa duração) com o módulo auto_explain ( https://www.postgresql.org/docs/current/static/auto-explain.html ) ativado e, em seguida, analisar o resultados.