Snowflake Postgresのサーバー設定

次の表は、Snowflake PostgresインスタンスのPostgresサーバーコンポーネントの設定できるパラメーターの詳細を示しています。各設定の名前は、Postgresドキュメントにハイパーリンクされています。

Default列に「Postgres default」が表示される場合、Snowflake PostgresインスタンスはPostgresのデフォルト値を使用します。これは、メジャーバージョンによって異なります。

Snowflake Postgresインスタンスを作成する際の、これらのPostgresサーバー設定の値の設定については、 Snowflake Postgresインスタンスの作成 をご参照ください。

Tip

特定のメジャーバージョンのパラメーターのドキュメントを見るには、ハイパーリンクアドレスの「current」という単語をターゲットのメジャーバージョンに変更します。 たとえば、 postgres:work_mem 設定のこのハイパーリンクアドレスは次のようになります。

https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-WORK-MEM

Postgres 17のドキュメントにアクセスする場合は次のようになります。

https://www.postgresql.org/docs/17/runtime-config-resource.html#GUC-WORK-MEM

コンポーネント

名前

再起動が必要です

説明

デフォルト

pgbouncer

autodb_idle_timeout

FALSE

(「*」を介して)自動的に作成されたデータベースプールがこの秒数の間、使用されなかった場合、それらは解放されます。

3600

pgbouncer

default_pool_size

FALSE

ユーザー/データベースのペアごとに許可するサーバー接続の数。

497

pgbouncer

ignore_startup_parameters

FALSE

パラメーターの起動パケット(例: options,extra_float_digits)を無視します。

client_encoding,datestyle,timezone,standard_conforming_strings,extra_float_digits

pgbouncer

max_prepared_statements

FALSE

単一のサーバー接続でアクティブに保つ準備済みステートメントの数

250

pgbouncer

pool_mode

FALSE

他のクライアントがサーバー接続を再利用できる場合を指定します。

トランザクション

pgbouncer

server_idle_timeout

サーバー接続がこの秒数以上アイドル状態である場合、サーバー接続は閉じられます。

FALSE

60

postgres

auto_explain.log_analyze

FALSE

実行計画がログに記録されると、 EXPLAIN 出力でなく、 EXPLAIN ANALYZE 出力が出力されます。

Postgresのデフォルト

postgres

auto_explain.log_buffers

FALSE

実行計画がログに記録されたときに、バッファーの使用統計を出力するかどうかを制御します。

Postgresのデフォルト

postgres

auto_explain.log_format

FALSE

使用する EXPLAIN 出力形式を選択します。

Postgresのデフォルト

postgres

auto_explain.log_min_duration

FALSE

ステートメントの最小実行時間(ミリ秒単位)。これにより、ステートメントの計画がログに記録されます。

Postgresのデフォルト

postgres

auto_explain.log_nested_statements

FALSE

ネストされたステートメント(関数内で実行されるステートメント)がログの対象となります。

Postgresのデフォルト

postgres

auto_explain.log_timing

FALSE

実行計画がログに記録されるときに、ノードごとのタイミング情報を出力するかどうかを制御します。

Postgresのデフォルト

postgres

auto_explain.log_triggers

FALSE

実行計画がログに記録されるときに、トリガー実行の統計が含まれるようにします。

Postgresのデフォルト

postgres

auto_explain.log_verbose

FALSE

実行計画がログに記録されるときに、詳細を出力するかどうかを制御します。

Postgresのデフォルト

postgres

auto_explain.sample_rate

FALSE

auto_explainが各セッションのステートメントの一部のみを説明するようにします。

Postgresのデフォルト

postgres

autovacuum_analyze_scale_factor

FALSE

ANALYZE をトリガーするかどうかを決定するときに、autovacuum_analyze_thresholdに追加するテーブルサイズの割合を指定します。

Postgresのデフォルト

postgres

autovacuum_freeze_max_age

TRUE

VACUUM 操作がテーブル内のトランザクション ID のラップアラウンドを防ぐために強制される前に、テーブルのトランザクション ID が到達できる最大年齢を(トランザクション単位で)指定します。

Postgresのデフォルト

postgres

autovacuum_vacuum_cost_delay

FALSE

自動の VACUUM 操作で使用されるコスト遅延値を指定します。-1が指定されている場合、通常のvacuum_cost_delay値が使用されます。

Postgresのデフォルト

postgres

autovacuum_vacuum_cost_limit

FALSE

自動の VACUUM 操作で使用されるコスト制限値を指定します。

Postgresのデフォルト

postgres

autovacuum_vacuum_insert_scale_factor

FALSE

VACUUM をトリガーするかどうかを決定するときに、autovacuum_vacuum_insert_thresholdに追加するテーブルサイズの割合を指定します。

Postgresのデフォルト

postgres

autovacuum_vacuum_insert_threshold

FALSE

任意の1つのテーブルで VACUUM をトリガーするために必要となる挿入されたタプルの数を指定します。

Postgresのデフォルト

postgres

autovacuum_vacuum_scale_factor

FALSE

VACUUM をトリガーするかどうかを決定するときに、autovacuum_vacuum_thresholdに追加するテーブルサイズの割合を指定します。

Postgresのデフォルト

postgres

checkpoint_completion_target

FALSE

チェックポイント間の合計時間の割合として、チェックポイント完了のターゲットを指定します。

Postgresのデフォルト

postgres

checkpoint_timeout

FALSE

自動の WAL チェックポイント間の最大時間。

Postgresのデフォルト

postgres

checkpoint_warning

FALSE

WAL セグメントファイルの入力によって発生したチェックポイントがこの時間よりも近くで発生した場合、サーバーログにメッセージを書き込みます。

Postgresのデフォルト

postgres

default_statistics_target

FALSE

ALTER TABLE SET STATISTICS を介して設定された列固有のターゲットがない、テーブル列のデフォルトの統計ターゲットを設定します。

Postgresのデフォルト

postgres

default_text_search_config

FALSE

構成を指定する明示的な引数を持たないテキスト検索関数のバリアントによって使用されるテキスト検索構成を選択します。

Postgresのデフォルト

postgres

default_transaction_read_only

FALSE

読み取り専用 SQL トランザクションは非仮テーブルを変更できません。

オフ

postgres

hot_standby_feedback

FALSE

ホットスタンドバイがスタンドバイで現在実行中のクエリについて、プライマリまたは上流スタンドバイにフィードバックを送信するかどうかを指定します。

オン

postgres

idle_in_transaction_session_timeout

FALSE

開いているトランザクション内で指定された時間より長くアイドル状態になっているセッションを終了します。

Postgresのデフォルト

postgres

intervalstyle

FALSE

間隔値の表示形式を設定します。

Postgresのデフォルト

postgres

jit

FALSE

JIT サポートを有効化します。

Postgresのデフォルト

postgres

lock_timeout

FALSE

ロックを取得しようとして、指定された時間よりも長く待機しているステートメントを中止します。

Postgresのデフォルト

postgres

log_autovacuum_min_duration

FALSE

autovacuumによって実行される各アクションが、少なくとも指定された時間実行された場合、ログに記録されます。

Postgresのデフォルト

postgres

log_connections

FALSE

成功した各接続について詳述する行をサーバーログに出力します。

Postgresのデフォルト

postgres

log_destination

FALSE

希望のログの宛先を設定します。

syslog,stderr

postgres

log_disconnections

FALSE

セッションの終了をログに記録します。ログ出力は、log_connectionsに類似した情報に加えて、セッションの期間を提供します。

Postgresのデフォルト

postgres

log_duration

FALSE

完了したすべてのステートメントの期間をログに記録します。

Postgresのデフォルト

postgres

log_line_prefix

FALSE

各ログ行の先頭に出力されるprintf-style文字列を指定します。

[%p][%b][%v][%x] %q[user=%u,db=%d,app=%a]

postgres

log_lock_waits

FALSE

セッションがロックを取得するのにdeadlock_timeoutより長く待機している場合に、ログメッセージを生成するかどうかを制御します。

オン

postgres

log_min_duration_sample

FALSE

少なくとも指定された時間実行された完了済みステートメントの期間のサンプリングを許可します。

Postgresのデフォルト

postgres

log_min_duration_statement

FALSE

ステートメントが少なくとも指定された時間実行された場合、各完了済みステートメントの期間がログに記録されます。

2秒

postgres

log_min_messages

FALSE

サーバーログに書き込むメッセージレベルを制御します。

通知

postgres

log_rotation_size

FALSE

これによって、個々のログファイルの最大サイズが決定されます。

Postgresのデフォルト

postgres

log_statement

FALSE

ログに記録される SQL ステートメントを制御します。

ddl

postgres

log_statement_sample_rate

FALSE

ログに記録される期間がlog_min_duration_sampleを超えるステートメントの割合を決定します。

Postgresのデフォルト

postgres

log_temp_files

FALSE

仮ファイルの名前とサイズのログを制御します。

10MB

postgres

log_transaction_sample_rate

FALSE

他の理由でログに記録されたステートメントに加えて、ステートメントがすべてログに記録されるトランザクションの割合を設定します。

Postgresのデフォルト

postgres

logical_decoding_work_mem

FALSE

論理デコードに使用されるメモリの最大量を指定します。

Postgresのデフォルト

postgres

maintenance_work_mem

FALSE

VACUUM 、 CREATE INDEX および ALTER TABLE ADD FOREIGN KEY など、メンテナンス操作が使用するメモリの最大量を指定します。

TOTAL_MEMORY * 0.4

postgres

max_connections

TRUE

データベースサーバーへの同時接続の最大数を決定します。

500

postgres

max_locks_per_transaction

TRUE

各トランザクションに割り当てられたオブジェクトロックの平均数を制御します。

Postgresのデフォルト

postgres

max_logical_replication_workers

TRUE

論理複製ワーカーの最大数を指定します。

Postgresのデフォルト

postgres

max_parallel_maintenance_workers

FALSE

単一のユーティリティコマンドで起動できる並列ワーカーの最大数を設定します。

Postgresのデフォルト

postgres

max_parallel_workers

FALSE

クラスターが並列操作のためにサポートできるワーカーの最大数を設定します。

NUM_CPUS

postgres

max_parallel_workers_per_gather

FALSE

単一のGatherまたはGather Mergeノードで起動できるワーカーの最大数を設定します。

NUM_CPUS

postgres

max_replication_slots

TRUE

サーバーがサポートできる複製スロットの最大数を指定します。

10

postgres

max_slot_wal_keep_size

FALSE

複製スロットがチェックポイント時間に pg_wal ディレクトリで保持することが許可されている WAL ファイルの最大サイズを指定します。

STORAGE_GB * 0.1

postgres

max_standby_archive_delay

FALSE

適用予定の WAL エントリと競合するスタンドバイクエリをキャンセルするまでの、スタンドバイサーバーの待機時間を決定します。

Postgresのデフォルト

postgres

max_standby_streaming_delay

FALSE

適用予定の WAL エントリと競合するスタンドバイクエリをキャンセルするまでの、スタンドバイサーバーの待機時間を決定します。

Postgresのデフォルト

postgres

max_wal_senders

TRUE

スタンドバイサーバーまたはストリーミングベースバックアップクライアントからの同時接続の最大数を指定します。

10

postgres

max_wal_size

FALSE

自動チェックポイント中に WAL が増やせる最大サイズ。

MIN(10GB, STORAGE_GB * 0.1)

postgres

max_worker_processes

TRUE

クラスターがサポートできるバックグラウンドプロセスの最大数を設定します。

100

postgres

pg_stat_statements.max

TRUE

追跡されるステートメントの最大数。

Postgresのデフォルト

postgres

pg_stat_statements.track

FALSE

どのステートメントを追跡するかを制御します。

Postgresのデフォルト

postgres

pg_stat_statements.track_utility

FALSE

ユーティリティコマンドを追跡する必要があります。ユーティリティコマンドは、 SELECT 、 INSERT 、 UPDATE 、 DELETE および MERGE 以外のすべてのコマンドです。

Postgresのデフォルト

postgres

random_page_cost

FALSE

順不同にフェッチされるディスクページのコストのプランナーの推定値を設定します。

1.1

postgres

session_preload_libraries

FALSE

接続開始時にプリロードされる1つ以上の共有ライブラリを指定します。

Postgresのデフォルト

postgres

statement_timeout

FALSE

指定された時間以上かかるステートメントを中止します。

Postgresのデフォルト

postgres

synchronous_commit

FALSE

データベースサーバーがクライアントに「成功」通知を返すまでに、完了しなければならない WAL の処理の量を指定します。

ローカル

postgres

syslog_split_messages

FALSE

syslogに送信されたメッセージを行で分割し、1024バイトにおさまるようにします

Postgresのデフォルト

postgres

tcp_keepalives_count

FALSE

クライアントへのサーバーの接続が切断されたと見なされる前に失われる TCP キープアライブメッセージの数を指定します。

4

postgres

tcp_keepalives_idle

FALSE

オペレーティングシステムが TCP キープアライブメッセージをクライアントに送信する前に、ネットワークアクティビティがない時間を指定します。

2

postgres

temp_file_limit

FALSE

プロセスがソートやハッシュ一時ファイルなどの一時ファイル、または保持されたカーソルのストレージファイルに使用できるディスク容量の最大量を指定します。

MIN(2000GB, STORAGE_GB * 0.25)

postgres

track_activity_query_size

TRUE

pg_stat_activity.queryフィールド用に、アクティブな各セッションの現在実行中のコマンドテキストを格納するために予約されたメモリ。

Postgresのデフォルト

postgres

track_commit_timestamp

TRUE

トランザクションのコミット時間を記録します。

Postgresのデフォルト

postgres

wal_keep_size

FALSE

スタンドバイサーバーが複製をストリーミングするために取得する必要がある場合に、pg_wal辞書に保持される過去の WAL ファイルの最小サイズを指定します。

Postgresのデフォルト

postgres

wal_sender_timeout

FALSE

WAL 複製を待機する最大時間を設定します。

Postgresのデフォルト

postgres

work_mem

FALSE

仮のディスクファイルに書き込む前に、クエリ操作(ソートまたはハッシュテーブルなど)で使用される基本の最大メモリ量を設定します。

(TOTAL_MEMORY * 0.75)/ (NUM_CORES * 8)