work_mem と一時ファイルの使い方
並べ替えがディスクにあふれていないか
書き方
EXPLAIN (ANALYZE) SELECT … ORDER BY …; SELECT temp_files, temp_bytes FROM pg_stat_database WHERE datname = 'quest'; ALTER SYSTEM SET log_temp_files = 0; \! free -h
並べ替えやハッシュは work_mem までメモリを使い、超えると一時ファイルに書きます(Sort Method: external merge Disk: …)。pg_stat_database の temp_files・temp_bytes で数を、log_temp_files でログを確かめます。work_mem は 1 つの並べ替えごとに使うので、大きくしすぎると接続が多いときにメモリが足りなくなります。free でサーバーのメモリを見ます。
例
SET work_mem = '64MB'; ALTER ROLE report SET work_mem = '64MB';
実際に打って練習する
PostgreSQL DBA コースの Lv50「メモリの設定」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
すべてのレベルが、プラチナ以上のプランで遊べます。