データベースパラメーターを調整することで、パフォーマンスの最適化、セキュリティの強化、または特定の機能要件を満たすことができます。PolarDB for PostgreSQL (Oracle 互換) は、クラウド環境で高いパフォーマンスと安定性を実現するために、コミュニティ版の一部のパラメーターを事前に最適化しています。このトピックでは、パラメーターのチューニングに役立つ、コアパラメーターに関する包括的なリファレンスと構成の推奨事項を説明します。
重要なパラメーター
PolarDB for PostgreSQL (Oracle 互換) は、パフォーマンス、可用性、信頼性を考慮して、デフォルトのパラメーター値を設定しています。これらの値は、コミュニティ版のデフォルト値とは異なる場合があります。特に、PolarDB は最適なパフォーマンスを実現するために、以下のパラメーターをデフォルト値に設定しています。これらのパラメーターは、必要に応じてコンソールで変更できます。
パラメータ | 説明 |
| 例外発生時に、コミットされていないデータベースの更新をロールバックするかどうかを制御します。有効値:
デフォルト値:
説明
|
| このパラメーターは、WAL に書き込まれる情報量を決定します。有効値は次のとおりです:
説明
|
| このパラメーターは、監査ログのレベルを設定します。デフォルト値は ddl で、DDL に対応する SQL 文のみが監査されることを意味します。ログの出力を減らすことで、データベースのパフォーマンスを向上させることができます。有効値は次のとおりです:
説明
|
一般的なパラメーターリファレンス
一部のパラメーターはコンソールで変更できません。クラスターにログインし、コマンドラインを使用して表示および変更できます。
接続と認証
パラメーター | 説明 |
| クライアントが身元認証を完了するまでの最大待機時間を設定します。この時間内にクライアントが認証に失敗した場合、サーバーは接続を閉じ、問題のあるクライアントが長時間接続リソースを占有するのを防ぎます。
|
| インスタンスが Secure Sockets Layer (SSL) 暗号化接続を有効にし、サポートするかどうかを制御します。
|
Autovacuum
autovacuum プロセスは、デッドタプル (削除または更新されたデータからの行) が占有する領域を再利用し、テーブルの統計を更新します。このプロセスは、データベースのパフォーマンスを維持するために重要です。
パラメーター | 説明 |
|
説明 このパラメーターが無効になっていても、トランザクション ID 周回を防ぐために必要な場合は、システムは強制的に vacuum プロセスを開始します。 |
| 同時に実行できる autovacuum ワーカープロセス (autovacuum ランチャーを除く) の最大数を指定します。
|
| autovacuum プロセスがデータベースをチェックする間の最小休止時間を指定します。各ラウンドで、バックグラウンドプロセスはデータベースをチェックし、必要に応じてデータベース内のテーブルに対して
|
|
|
|
|
|
|
|
|
| トランザクション ID 周回を防ぐために
説明 autovacuum が無効になっていても、システムは周回を防ぐために autovacuum プロセスを開始します。 |
| multixact ID 周回を防ぐために
説明 autovacuum が無効になっていても、システムは周回を防ぐために autovacuum プロセスを開始します。 |
| 自動
|
| 自動
|
チェックポイントとバックグラウンド書き込み
パラメーター | 説明 |
| 自動 WAL チェックポイント間の最大時間間隔を設定します。
|
| バックグラウンドライターがダーティページをフラッシュする 2 つのラウンド間の休止時間。
|
| バックグラウンドプロセスによって書き込まれたダーティページの数がこのしきい値を超えると、オペレーティングシステムはファイルキャッシュからディスクにデータをフラッシュします。
|
| チェックポイント後にデータページが最初に変更されたときに、そのデータページの全内容を WAL ログに書き込むかどうかを制御します。この機能は、停電などの障害による部分的なページ書き込みを防ぐために使用されます。
|
| WAL データをメモリ内に一時的に保存するために使用される共有メモリのサイズ。
|
| 先行書き込みログ (WAL) に書き込まれる情報のレベルを制御します。異なるレベルは異なる機能をサポートします:
|
| walwriter プロセスが WAL フラッシュ操作の 2 つのラウンド間で休止できる最大時間。
|
クエリの計画と実行
パラメーター | 説明 |
| クエリオプティマイザーがテーブル制約 (チェック制約など) を使用してクエリを最適化するかどうかを制御します。特にパーティションテーブルでのクエリプルーニングに適用されます。
|
| プランナーがインデックススキャン中に各インデックスエントリを処理するためのコスト見積もりを設定します。
|
| プランナーがクエリ内の各オペレーターまたは関数を処理するためのコスト見積もりを設定します。
|
| プランナーがクエリ内の各行を処理するためのコスト見積もりを設定します。
|
| クエリオプティマイザーが計画および実行フェーズでパーティションプルーニング最適化を有効にし、無関係なパーティションのスキャンをスキップするかどうかを制御します。
|
| プランナーがシーケンシャルなディスクページフェッチを行うためのコスト見積もりを設定します。
|
| 特定のクエリに対して Just-In-Time (JIT) コンパイルを有効にして実行を高速化するかどうかを制御します。
|
タイムアウト設定
パラメーター | 説明 |
| トランザクションが潜在的なデッドロックをチェックする前にロックを待機する最大時間。
|
| トランザクションが「トランザクション内でアイドル」状態にあることを許可される最大時間。この時間を超えるとセッションは終了します。このタイムアウトを無効にするには 0 に設定します。
|
| 単一の操作がテーブル、行、またはその他のオブジェクトのロックを取得するために待機する最大時間。この時間を超えると操作はエラーで終了します。このタイムアウトを無効にするには 0 に設定します。これは無期限に待機することを意味します。
|
| 単一の SQL 文の最大実行時間を制限します。この時間を超えると文は終了します。タイムアウト制限なしにするには 0 に設定します。
|
ログと監査
パラメーター | 説明 |
| クラスターの操作中にログをキャッチして書き込む役割を担うログ収集プロセスを有効にするかどうかを制御します。
|
| 成功した各クライアント接続をログに記録するかどうかを制御します。
|
| 各クライアントの切断をログに記録するかどうかを制御します。
|
| エラーログの詳細度を設定します。
|
| 指定された実行時間のしきい値を超えた低速 SQL 文を記録します。すべての SQL 文を記録するには 0 に設定します。低速 SQL 文ログ機能を無効にするには -1 に設定します。
|
| ログに記録される SQL 文の種類を制御します。
|
レプリケーションと高可用性
パラメーター | 説明 |
| セカンダリノード (読み取り専用ノード) が読み取り専用クエリを受け入れることができるかどうかを制御します。
|
| 読み取り専用ノードが実行中のクエリに関するフィードバックをプライマリノードに送信するかどうかを制御します。有効にすると、プライマリノードは、読み取り専用ノード上のクエリでまだ使用されている古いデータ行のクリーンアップを遅延させ、クエリの競合を減らします。
|
| インスタンスがサポートできるレプリケーションスロットの最大数。
|
リソース管理
パラメーター | 説明 |
| 動的共有メモリの実装方法を指定します。
|
| 高速更新モードでの GIN インデックスの保留リストの最大メモリサイズを設定します。
|
| インスタンスがオペレーティングシステムによって提供されるラージページを使用しようとするかどうかを制御します。
|
| 各データベースバックグラウンドプロセスが同時に開くことを許可されるファイルハンドルの最大数。
|
| 各トランザクションが保持できるロックの最大数。
|
| クラスター内で同時にプリペアード状態 (2 フェーズコミットプロトコル) にできるトランザクションの最大数。
|
| クラスターが開始できるバックグラウンドワーカープロセスの最大合計数 (パラレルクエリワーカープロセスを含む)。
|
| 単一のバックグラウンドプロセスが使用できる一時ファイル (ソートやハッシュなどの操作に使用) の合計サイズを制限します。制限なしにするには -1 に設定します。
|
フォーマットと動作
パラメーター | 説明 |
| 日付と時刻の値の表示フォーマットを設定します。
|
|
|
| 標準精度を超えて浮動小数点数に表示される追加の有効桁数を制御します。これは、浮動小数点値をより正確に表示するために使用されます。
|
| データベースが
|
| データベースセッションがタイムスタンプを表示および解釈するために使用するタイムゾーンを指定します。
|