ユーザ用ツール

サイト用ツール


it技術:データベース:postgresql:運用

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
it技術:データベース:postgresql:運用 [2020/01/24 17:08] – [VACUUM実行確認] yajuadminit技術:データベース:postgresql:運用 [2021/01/21 10:31] – [effective_cache_size] yajuadmin
行 50: 行 50:
 [[https://dbstudychugoku.github.io/pdf/20140713_postgre_tuning.pdf|ディスクソートの発生を避ける]] [[https://dbstudychugoku.github.io/pdf/20140713_postgre_tuning.pdf|ディスクソートの発生を避ける]]
  
-  * メモリ上でソートが行えるようwork\_memパラメータを調整+  * メモリ上でソートが行えるようwork_memパラメータを調整
   * work_memはセッションごとに確保される領域であるため、SETコマンドで処理に応じて調整するのが望ましい   * work_memはセッションごとに確保される領域であるため、SETコマンドで処理に応じて調整するのが望ましい
  
行 74: 行 74:
  
 ^搭載メモリ^推奨値^ ^搭載メモリ^推奨値^
-|2GB|512MB| +|2GB|512MB→1GB
-|4GB|1GB| +|4GB|1GB→2GB
-|8GB|2GB| +|8GB|2GB→4GB
-|16GB|4GB|+|16GB|4GB→8GB|
  
 ==== random_page_cost ==== ==== random_page_cost ====
行 147: 行 147:
 initdb: ディレクトリ "D:\Program Files\PostgreSQL\9.6\data"の権限を変更できませんでした:Permission denied initdb: ディレクトリ "D:\Program Files\PostgreSQL\9.6\data"の権限を変更できませんでした:Permission denied
  
-Userに変更チェックを追加 することで回避した。\\+Userに変更チェックを追加 することで回避した。\\
 他にもrunasコマンドを使用する(データベースクラスタの作成過程でpostgresプロセスを起動しますが、このプロセスは管理者権限では実行できないため)\\ 他にもrunasコマンドを使用する(データベースクラスタの作成過程でpostgresプロセスを起動しますが、このプロセスは管理者権限では実行できないため)\\
   * [[https://blog.tpc.jp/2018/05/postgresql-10-install-error.html|PostgreSQL 10 インストール時の不具合解消方法]]   * [[https://blog.tpc.jp/2018/05/postgresql-10-install-error.html|PostgreSQL 10 インストール時の不具合解消方法]]
行 513: 行 513:
 SELECT relname, n_live_tup, n_dead_tup, last_vacuum, last_autovacuum, last_analyze, last_autoanalyze SELECT relname, n_live_tup, n_dead_tup, last_vacuum, last_autovacuum, last_analyze, last_autoanalyze
 FROM pg_stat_all_tables FROM pg_stat_all_tables
-WHERE schemaname = 'wh_kousei'+WHERE schemaname = 'public-- schemaname or relnameで絞りこむと見やすい
 ORDER BY relname ORDER BY relname
 </code> </code>
行 558: 行 558:
 ageが15億になる前にVACUUMをかける。かけるとまた10億になる。 ageが15億になる前にVACUUMをかける。かけるとまた10億になる。
 [[http://blog.livedoor.jp/moonfishnet/archives/26220925.html|VACUUMとage関数]] [[http://blog.livedoor.jp/moonfishnet/archives/26220925.html|VACUUMとage関数]]
 +
 +===== インデックスの再構築 =====
 +
 +==== リインデックス ====
 +reindexコマンドを使用して、インデックスの再構築する。\\
 +<code bat>
 +rem PK_REP_RES_QUEをリインデックスする
 +SET PGPASSWORD=wh_kousei
 +psql -U wh_kousei -c "reindex INDEX pk_rep_res_que;"
 +</code>
 +
 +==== テーブルロックなしのリインデックス ====
 +reindexコマンドはテーブルロックがかかってしまうので、運用中のDBに対して使うのは難しい。\\
 +ただ、PostgreSQLでは別名で全く同じインデックスの作成を行うことができる
 +
 +  * [[http://cynipe.hateblo.jp/entry/2012/08/19/173230|PostgreSQLでテーブルロックせずにインデックスを再構築する方法]]
 +  * [[https://tak-w.hatenadiary.org/entry/20111125|index 再構築方法]]
 +  * [[https://tak-w.hatenadiary.org/entry/20111207/1323270854|index 再構築 Primary key]]
 +  * [[http://kashi.way-nifty.com/jalan/2014/04/postgresql-81a7.html|定期的なインデックス再作成を自動化]]
 +
 +<code bat>
 +rem PK_REP_RES_QUEをリインデックスする
 +SET PGPASSWORD=wh_test
 +psql -U wh_test -f reindex_rep_res_que.sql
 +</code>
 +
 +<code sql reindex_rep_res_que.sql>
 +create unique index concurrently pk_rep_res_que_new on rep_res_que(que_id);
 +
 +alter table rep_res_que drop constraint pk_rep_res_que;
 +alter index pk_rep_res_que_new rename to pk_rep_res_que;
 +alter table rep_res_que add primary key using index pk_rep_res_que;
 +</code>
 ===== 確認用SQL ===== ===== 確認用SQL =====
 === テーブルのディスク使用量を取得する === === テーブルのディスク使用量を取得する ===
it技術/データベース/postgresql/運用.txt · 最終更新: 2022/06/06 11:17 by yajuadmin