Visualizar o uso de arquivos temporários com o Insights de Performance
É possível usar o Insights de Performance para visualizar o uso de arquivos temporários ativando as métricas temp_bytes e temp_files. A visualização no Insights de Performance não mostra as consultas específicas que geram arquivos temporários, no entanto, ao combinar o Insights de Performance com a consulta mostrada para pg_ls_tmpdir
, é possível solucionar problemas, analisar e determinar as alterações na workload de consulta.
-
No painel do Performance Insights, selecione Gerenciar métricas.
-
Escolha Métricas de banco de dados e selecione as métricas temp_bytes e temp_files como mostrado na imagem a seguir.
-
Na guia Top SQL, selecione o ícone Preferências.
-
Na janela Preferências, ative as estatísticas a seguir para serem exibidas na guia Top SQL e selecione Continuar.
-
Gravações temporárias/segundo
-
Leituras de temperatura/segundo
-
Gravação/chamada em bloco temporário
-
Leitura/chamada em bloco temporário
-
-
O arquivo temporário é dividido quando combinado com a consulta mostrada para
pg_ls_tmpdir
, conforme exibido no exemplo a seguir.
Os eventos IO:BufFileRead
e IO:BufFileWrite
ocorrem porque as principais consultas na workload geralmente criam arquivos temporários. Você pode usar o Insights de Performance para identificar as principais consultas que aguardam IO:BufFileRead
e IO:BufFileWrite
revisando “Média de sessões ativas (AAS)” nas seções “Carga do banco de dados” e “SQL principal”.
Para obter mais informações sobre como usar o Insights de Performance para analisar as principais consultas e a carga por eventos de espera, consulte Visão geral da guia Top SQL (SQL principal) Você deve identificar e ajustar as consultas que aumentam o uso de arquivos temporários e os eventos de espera correspondentes. Para obter mais informações sobre esses eventos de espera e a correção, consulte IO:BufFileRead e IO:BufFileWrite.
nota
O parâmetro work_mem
Como prática recomendada, quando você tem um relatório grande com várias junções e classificações, defina esse parâmetro no nível da sessão usando o comando SET work_mem
. Depois, a alteração é aplicada somente à sessão atual e não altera o valor globalmente.