Performance Insights を使用した一時ファイルの使用状況の確認
Performance Insights で、temp_bytes と temp_files のメトリクスをオンにすると、一時ファイルの使用状況を確認できます。Performance Insights のビューには、一時ファイルを生成する特定のクエリは表示されませんが、Performance Insights を pg_ls_tmpdir
に示されているクエリと組み合わせると、クエリワークロードの変更をトラブルシューティング、分析、判断できます。
-
Performance Insights ダッシュボードで、[メトリクスを管理] を選択します。
-
次の画像に示すように、[データベースメトリクス] を選択して、[temp_bytes] と [temp_files] を選択します。
-
[トップ SQL] タブで、[設定] アイコンを選択します。
-
[設定] ウィンドウで、[トップ SQL] タブに以下の統計が表示されるようにして、[続行] を選択します。
-
Temp writes/sec
-
Temp reads/sec
-
Tmp blk write/call
-
Tmp blk read/call
-
-
次の例に示すように、
pg_ls_tmpdir
で示したクエリと組み合わせると、この一時ファイルが抜き出されます。
IO:BufFileRead
と IO:BufFileWrite
イベントは、ワークロードの上位クエリが一時ファイルを頻繁に作成するときに発生します。Performance Insights を使用することで、「データベース負荷」と「上位 SQL」セクションの「平均アクティブセッション (AAS)」を参照して、IO:BufFileRead
と IO:BufFileWrite
を待機中の上位クエリの特定が可能になります。
Performance Insights を使用して上位クエリを分析して、待機イベント別にロードする方法については、「[トップ SQL] タブの概要」を参照してください テンポラリファイルの使用量と関連する待機イベントの増加の原因となるクエリを特定し、調整する必要があります。これらの待機イベントと修復方法の詳細については、「」「IO:BufFileRead および IO:BufFileWrite」を参照してください。
注記
work_mem
ベストプラクティスとして、複数の結合とソートを含む大規模なレポートがある場合は、SET work_mem
コマンドを使用してこのパラメータをセッションレベルで設定します。そうすれば、変更は現在のセッションにのみ適用され、値がグローバルに変更されることはありません。