バージョンごとのドキュメント一覧

19.10. Vacuuming #

These parameters control vacuuming behavior. For more information on the purpose and responsibilities of vacuum, see <xref linkend="routine-vacuuming"/>. 《機械翻訳》これらのパラメータは、バキューム処理の動作をコントロールします。 バキュームの目的と責任の詳細は、24.1を参照してください。

19.10.1. 自動Vacuum作業 #

<title>Automatic Vacuuming</title>

These settings control the behavior of the <firstterm>autovacuum</firstterm> feature. Refer to <xref linkend="autovacuum"/> for more information. Note that many of these settings can be overridden on a per-table basis; see <xref linkend="sql-createtable-storage-parameters"/>. 以下に示す設定は自動バキューム機能の動作を制御します。 詳細は24.1.6を参照してください。 これらの設定の多くは、テーブル単位で変更できることに注意してください。 格納パラメータを参照してください。

autovacuum (boolean) #

Controls whether the server should run the autovacuum launcher daemon. This is on by default; however, <xref linkend="guc-track-counts"/> must also be enabled for autovacuum to work. This parameter can only be set in the <filename>postgresql.conf</filename> file or on the server command line; however, autovacuuming can be disabled for individual tables by changing table storage parameters. 《マッチ度[85.459184]》サーバがautovacuumランチャデーモンを実行すべきかどうかを管理します。 デフォルトでは有効です。 しかしautovacuumを作動させるためにはtrack_countsも有効でなければなりません。 このパラメータは、postgresql.confファイルか、サーバのコマンドラインでのみ設定可能です。 ただし、テーブルストレージパラメータを変更することにより、autovacuumは個々のテーブルに対して無効にできます。 《機械翻訳》サーバが自動バキュームランチャデーモンを稼働させるかどうかを制御します。 これはデフォルトによって有効になっていますが、オートバキュームが機能するためにはtrack_countsも有効になっている必要があります。 このパラメータはpostgresql.confファイルまたはサーバコマンドライン上でのみ設定可能です。 しかし、テーブルストレージパラメータを変更することで個々のテーブルに対して自動バキュームを無効にすることができます。

Note that even when this parameter is disabled, the system will launch autovacuum processes if necessary to prevent transaction ID wraparound. See <xref linkend="vacuum-for-wraparound"/> for more information. 《マッチ度[84.134615]》このパラメータが無効であったとしてもシステムは、トランザクションIDの周回を防止する必要があれば、autovacuumプロセスを起動することに注意してください。 詳細は24.1.5を参照してください。 《機械翻訳》このパラメータが無効であったとしてもシステムは、トランザクションIDの周回を防止する必要があれば、autovacuumプロセスを起動することに注意してください。 詳細は24.1.5を参照してください。

autovacuum_worker_slots (integer) #

Specifies the number of backend slots to reserve for autovacuum worker processes. The default is typically 16 slots, but might be less if your kernel settings will not support it (as determined during initdb). This parameter can only be set at server start. 《機械翻訳》バックエンドワーカープロセスのために予約するオートバキュームスロットの数を指定します。 デフォルトは通常16スロットですが、カーネル設定がサポートしない場合(initdb時に決定されます)はこれより少なくなる可能性があります。 このパラメータはサーバスタートでのみ設定できます。

When changing this value, consider also adjusting <xref linkend="guc-autovacuum-max-workers"/>. 《機械翻訳》この値を変更する場合は、autovacuum_max_workersの調整も考慮してください。

autovacuum_max_workers (integer) #

Specifies the maximum number of autovacuum processes (other than the autovacuum launcher) that may be running at any one time. The default is <literal>3</literal>. This parameter can only be set in the <filename>postgresql.conf</filename> file or on the server command line. 《マッチ度[61.313869]》同時に実行することができるautovacuumプロセス(autovacuumランチャ以外)の最大数を指定します。 デフォルトは3です。 このパラメータはサーバ起動時のみ設定可能です。 《機械翻訳》同時に実行できる自動バキュームプロセス(自動バキュームランチャ以外)の最大数を指定します。 デフォルトは3です。 このパラメータはpostgresql.confファイルまたはサーバコマンドラインにのみ設定できます。

Note that a setting for this value which is higher than <xref linkend="guc-autovacuum-worker-slots"/> will have no effect, since autovacuum workers are taken from the pool of slots established by that setting. 《機械翻訳》ノートでは、この値をautovacuum_worker_slotsよりも高く設定しても効果はありません。 これは、オートバキュームワーカーがその設定によって確立されたプールのスロットから取得されるためです。

autovacuum_naptime (integer) #

Specifies the minimum delay between autovacuum runs on any given database. In each round the daemon examines the database and issues <command>VACUUM</command> and <command>ANALYZE</command> commands as needed for tables in that database. If this value is specified without units, it is taken as seconds. The default is one minute (<literal>1min</literal>). This parameter can only be set in the <filename>postgresql.conf</filename> file or on the server command line. 《マッチ度[86.081370]》あるデータベースについて実行されるautovacuumデーモンの最小遅延を指定します。 それぞれの周期で、デーモンはそのデータベースを試験し、そしてそのデータベース内のテーブルで必要性が認められると、VACUUMおよびANALYZEコマンドを発行します。 この値が単位なしで指定された場合は、秒単位であるとみなします。 デフォルトは1分(1min)です。 このパラメータは、postgresql.confファイルか、サーバのコマンドラインでのみ設定可能です。 《機械翻訳》任意のデータベースで実行されるオートバキューム間の最小遅延を指定します。 各ラウンドで、デーモンはデータベースを検査し、必要に応じてそのデータベースの表に対してVACUUMおよびANALYZEコマンドを発行します。 この値がユニットなしで指定された場合、秒として扱われます。 デフォルトは1分(1min)です。 このパラメータはpostgresql.confファイルまたはサーバコマンドラインでのみ設定できます。

autovacuum_vacuum_threshold (integer) #

Specifies the minimum number of updated or deleted tuples needed to trigger a <command>VACUUM</command> in any one table. The default is 50 tuples. This parameter can only be set in the <filename>postgresql.conf</filename> file or on the server command line; but the setting can be overridden for individual tables by changing table storage parameters. 《マッチ度[84.090909]》どのテーブルに対してもVACUUMを起動するために必要な、更新もしくは削除されたタプルの最小数を指定します。 デフォルトは50タプルです。 このパラメータは、postgresql.confファイルか、サーバのコマンドラインでのみ設定可能です。 ただし、この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。 《機械翻訳》VACUUM任意の1つのテーブルのトリガに必要な更新または削除されたタプルの最小数を指定します。 デフォルトは50タプルです。 このパラメータはpostgresql.confファイルまたはサーバコマンドラインにのみ設定できますが、テーブルストレージパラメータを変更することで個々の表の設定を上書きできます。

autovacuum_vacuum_insert_threshold (integer) #

Specifies the number of inserted tuples needed to trigger a <command>VACUUM</command> in any one table. The default is 1000 tuples. If -1 is specified, autovacuum will not trigger a <command>VACUUM</command> operation on any tables based on the number of inserts. This parameter can only be set in the <filename>postgresql.conf</filename> file or on the server command line; but the setting can be overridden for individual tables by changing table storage parameters. 《マッチ度[84.401709]》あるテーブルでVACUUMを起動するきっかけとなるのに必要な挿入タプル数を設定します。 デフォルトは1000タプルです。 -1が指定されると、自動VACUUMが挿入タプル数に基づいてVACUUM操作を引き起こすことはなくなります。 このパラメータは、postgresql.confファイルか、サーバのコマンドラインでのみ設定可能です。 ただし、この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。 《機械翻訳》VACUUM任意の1つのテーブルのトリガaに必要な挿入タプルの数が指定されます。 デフォルトは1000タプルです。 -1が指定された場合、オートバキュームは挿入の数に基づいてVACUUM任意の表のオペレーションをトリガしません。 このパラメータはpostgresql.confファイルまたはサーバコマンドラインでのみ設定できますが、テーブルストレージパラメータを変更することで個々の表の設定を上書きできます。

autovacuum_analyze_threshold (integer) #

Specifies the minimum number of inserted, updated or deleted tuples needed to trigger an <command>ANALYZE</command> in any one table. The default is 50 tuples. This parameter can only be set in the <filename>postgresql.conf</filename> file or on the server command line; but the setting can be overridden for individual tables by changing table storage parameters. 《マッチ度[84.615385]》どのテーブルに対してもANALYZEを起動するのに必要な、挿入、更新、もしくは削除されたタプルの最小数を指定します。 デフォルトは50タプルです。 このパラメータは、postgresql.confファイルか、サーバのコマンドラインでのみ設定可能です。 ただし、この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。 《機械翻訳》ANALYZE任意の1つのテーブルのトリガに必要な挿入、更新または削除されたタプルの最小数を指定します。 デフォルトは50タプルです。 このパラメータはpostgresql.confファイルまたはサーバコマンドラインにのみで設定できますが、テーブルストレージパラメータを変更することで個々の表の設定を上書きできます。

autovacuum_vacuum_scale_factor (floating point) #

Specifies a fraction of the table size to add to <varname>autovacuum_vacuum_threshold</varname> when deciding whether to trigger a <command>VACUUM</command>. The default is <literal>0.2</literal> (20% of table size). This parameter can only be set in the <filename>postgresql.conf</filename> file or on the server command line; but the setting can be overridden for individual tables by changing table storage parameters. 《マッチ度[80.285036]》VACUUMを起動するか否かを決定するときに、autovacuum_vacuum_thresholdに足し算するテーブル容量の割合を指定します。 デフォルトは0.2(テーブルサイズの20%)です。 このパラメータは、postgresql.confファイルか、サーバのコマンドラインでのみ設定可能です。 ただし、この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。 《機械翻訳》aVACUUMをトリガするかどうかを決定するときに、autovacuum_vacuum_thresholdに追加するテーブルサイズの割合を指定します。 デフォルトは0.2(テーブルサイズの20%です)。 このパラメータはpostgresql.confファイルまたはサーバコマンドラインでのみ設定できますが、テーブルストレージパラメータを変更することで個々の表の設定を上書きできます。

autovacuum_vacuum_insert_scale_factor (floating point) #

Specifies a fraction of the unfrozen pages in the table to add to <varname>autovacuum_vacuum_insert_threshold</varname> when deciding whether to trigger a <command>VACUUM</command>. The default is <literal>0.2</literal> (20% of unfrozen pages in table). This parameter can only be set in the <filename>postgresql.conf</filename> file or on the server command line; but the setting can be overridden for individual tables by changing table storage parameters. 《マッチ度[75.109170]》VACUUMを起動するかどうか決める際のautovacuum_vacuum_insert_thresholdに追加するテーブルサイズの割合を指定します。 デフォルトは0.2(テーブルサイズの20%)です。 このパラメータは、postgresql.confファイルか、サーバのコマンドラインでのみ設定可能です。 ただし、この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。 《機械翻訳》aVACUUMをページにするかどうかを決定する場合に、autovacuum_vacuum_insert_thresholdに追加するテーブルの未凍結トリガの割合を指定します。 デフォルトは0.2テーブルの未凍結ページの20%です。 このパラメータはpostgresql.confファイルまたはサーバコマンドラインでのみ設定できますが、テーブルストレージパラメータを変更することで個々の表の設定を上書きできます。

autovacuum_analyze_scale_factor (floating point) #

Specifies a fraction of the table size to add to <varname>autovacuum_analyze_threshold</varname> when deciding whether to trigger an <command>ANALYZE</command>. The default is <literal>0.1</literal> (10% of table size). This parameter can only be set in the <filename>postgresql.conf</filename> file or on the server command line; but the setting can be overridden for individual tables by changing table storage parameters. 《マッチ度[80.424528]》ANALYZEを起動するか否かを決定するときに、autovacuum_analyze_thresholdに足し算するテーブル容量の割合を指定します。 デフォルトは0.1(テーブルサイズの10%)です。 このパラメータは、postgresql.confファイルか、サーバのコマンドラインでのみ設定可能です。 ただし、この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。 《機械翻訳》ANALYZEをトリガするかどうかを決定するときに、autovacuum_analyze_thresholdに追加するテーブルサイズの割合を指定します。 デフォルトは0.1(テーブルサイズの10%です)。 このパラメータはpostgresql.confファイルまたはサーバコマンドラインでのみ設定できますが、テーブルストレージパラメータを変更することで個々の表の設定を上書きできます。

autovacuum_vacuum_max_threshold (integer) #

Specifies the maximum number of updated or deleted tuples needed to trigger a <command>VACUUM</command> in any one table, i.e., a limit on the value calculated with <varname>autovacuum_vacuum_threshold</varname> and <varname>autovacuum_vacuum_scale_factor</varname>. The default is 100,000,000 tuples. If -1 is specified, autovacuum will not enforce a maximum number of updated or deleted tuples that will trigger a <command>VACUUM</command> operation. This parameter can only be set in the <filename>postgresql.conf</filename> file or on the server command line; but the setting can be overridden for individual tables by changing storage parameters. 《マッチ度[51.766513]》あるテーブルでVACUUMを起動するきっかけとなるのに必要な挿入タプル数を設定します。 デフォルトは1000タプルです。 -1が指定されると、自動VACUUMが挿入タプル数に基づいてVACUUM操作を引き起こすことはなくなります。 このパラメータは、postgresql.confファイルか、サーバのコマンドラインでのみ設定可能です。 ただし、この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。 《機械翻訳》トリガaに必要な更新または削除されたタプルの最大数を指定しますVACUUM任意の1つのテーブル、つまりautovacuum_vacuum_thresholdおよびautovacuum_vacuum_scale_factorで計算された値の制限。 デフォルトは100,000,000タプルです。 -1を指定すると、オートバキュームはトリガaVACUUMオペレーションになる更新または削除されたタプルの最大数を強制しません。 このパラメータはpostgresql.confファイルまたはサーバコマンドラインにのみ設定できますが、ストレージパラメータを変更することで個々の表の設定を上書きできます。

autovacuum_freeze_max_age (integer) #

Specifies the maximum age (in transactions) that a table's <structname>pg_class</structname>.<structfield>relfrozenxid</structfield> field can attain before a <command>VACUUM</command> operation is forced to prevent transaction ID wraparound within the table. Note that the system will launch autovacuum processes to prevent wraparound even when autovacuum is otherwise disabled. 《マッチ度[87.335092]》トランザクションID周回を防ぐためにVACUUM操作が強制される前までにテーブルのpg_class.relfrozenxid フィールドが到達できる最大(トランザクションにおける)年代を指定します。 自動バキュームが無効であった時でも、システムは周回を防ぐために自動バキューム子プロセスを起動することに注意してください。 《機械翻訳》テーブルpg_classの最大有効期間(トランザクション数)を指定します。 relfrozenxidフィールドは前を獲得することができます。 VACUUMオペレーションはテーブル内のトランザクションIDの周回を防ぐことを強制されます。 オートバキュームが他の障害を負っている場合でも周回を防ぐためにシステムが自動バキュームプロセスを立ち上げるというノート。

Vacuum also allows removal of old files from the <filename>pg_xact</filename> subdirectory, which is why the default is a relatively low 200 million transactions. This parameter can only be set at server start, but the setting can be reduced for individual tables by changing table storage parameters. For more information see <xref linkend="vacuum-for-wraparound"/>. 《マッチ度[84.741144]》vacuumは同時にpg_xactサブディレクトリから古いファイルの削除を許可します。 これが、比較的低い2億トランザクションがデフォルトである理由です。 このパラメータはサーバ起動時にのみ設定可能です。 しかし、この設定はテーブルストレージパラメータの変更により、それぞれのテーブルで減らすことができます。 詳細は24.1.5を参照してください。 《機械翻訳》バキュームでは、pg_xactサブディレクトリから古いファイルを削除することもできます。 これが、デフォルトが比較的少ない200,000,000トランザクションである理由です。 このパラメータはサーバスタートでのみ設定できますが、テーブルストレージパラメータを変更することで個々のテーブルの設定を減らすことができます。 詳細については、24.1.5を参照してください。

autovacuum_multixact_freeze_max_age (integer) #

Specifies the maximum age (in multixacts) that a table's <structname>pg_class</structname>.<structfield>relminmxid</structfield> field can attain before a <command>VACUUM</command> operation is forced to prevent multixact ID wraparound within the table. Note that the system will launch autovacuum processes to prevent wraparound even when autovacuum is otherwise disabled. 《マッチ度[87.131367]》トランザクションID周回を防ぐためにVACUUM操作が強制される前までにテーブルのpg_class.relminmxid フィールドが到達できる最大(マルチトランザクションにおける)年代を指定します。 自動バキュームが無効であった時でも、システムは周回を防ぐために自動バキューム子プロセスを起動することに注意してください。 《機械翻訳》テーブルpg_classの最大有効期間を(multixacts)で指定します。 relminmxidフィールドは前を獲得することができます。 VACUUMオペレーションはテーブル内のマルチトランザクションIDの周回を防ぐことを強制されます。 オートバキュームが他の障害を負っている場合でも周回を防ぐためにシステムが自動バキュームプロセスを立ち上げるというノート。

Vacuuming multixacts also allows removal of old files from the <filename>pg_multixact/members</filename> and <filename>pg_multixact/offsets</filename> subdirectories, which is why the default is a relatively low 400 million multixacts. This parameter can only be set at server start, but the setting can be reduced for individual tables by changing table storage parameters. For more information see <xref linkend="vacuum-for-multixact-wraparound"/>. 《マッチ度[87.555556]》またマルチトランザクションIDのvacuumはpg_multixactpg_multixact/offsetsサブディレクトリから古いファイルの削除します。 これがデフォルトが4億トランザクションをやや下回る理由です。 このパラメータはサーバ起動時にのみ設定可能です。 しかし、この設定はテーブルストレージパラメータの変更により、それぞれのテーブルで減らすことができます。 詳細は24.1.5.1を参照してください。 《機械翻訳》バキューム処理マルチxactsでは、pg_multixact/membersおよびpg_multixact/offsetsサブディレクトリから古いファイルを削除することもできます。 これが、デフォルトが比較的少ない400,000,000マルチxactsである理由です。 このパラメータはサーバスタートでのみ設定できますが、テーブルストレージパラメータを変更することで個々のテーブルの設定を減らすことができます。 詳細は、24.1.5.1を参照してください。

autovacuum_vacuum_cost_delay (floating point) #

Specifies the cost delay value that will be used in automatic <command>VACUUM</command> operations. If -1 is specified, the regular <xref linkend="guc-vacuum-cost-delay"/> value will be used. If this value is specified without units, it is taken as milliseconds. The default value is 2 milliseconds. This parameter can only be set in the <filename>postgresql.conf</filename> file or on the server command line; but the setting can be overridden for individual tables by changing table storage parameters. 《マッチ度[85.515873]》自動VACUUM操作に使用されるコスト遅延値を指定します。 -1に指定されると、一定の vacuum_cost_delayの値が使用されます。 この値が単位なしで指定された場合は、ミリ秒単位であるとみなします。 デフォルト値は2ミリ秒です。 このパラメータは、postgresql.confファイルか、サーバのコマンドラインでのみ設定可能です。 ただし、この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。 《機械翻訳》自動VACUUM操作で使用されるコスト遅延値を指定します。 -1を指定すると、通常のvacuum_cost_delay値が使用されます。 この値をユニットなしで指定すると、ミリ秒と見なされます。 デフォルト値は2ミリ秒です。 このパラメータはpostgresql.confファイルまたはサーバコマンドライン上でのみ設定できますが、テーブルストレージパラメータを変更することで個々のテーブルの設定を上書きできます。

autovacuum_vacuum_cost_limit (integer) #

Specifies the cost limit value that will be used in automatic <command>VACUUM</command> operations. If <literal>-1</literal> is specified (which is the default), the regular <xref linkend="guc-vacuum-cost-limit"/> value will be used. Note that the value is distributed proportionally among the running autovacuum workers, if there is more than one, so that the sum of the limits for each worker does not exceed the value of this variable. This parameter can only be set in the <filename>postgresql.conf</filename> file or on the server command line; but the setting can be overridden for individual tables by changing table storage parameters. 《マッチ度[83.048212]》自動VACUUM操作に使用されるコスト限界値を指定します。 (デフォルトの)-1が指定されると、一定の vacuum_cost_limitの値が使用されます。 この値は、実行中の自動バキュームワーカーが複数存在する場合ワーカーすべてに比例分配されることに注意してください。 したがって各ワーカーの制限を足し合わせてもこの変数による制限を超えることはありません。 このパラメータは、postgresql.confファイルか、サーバのコマンドラインでのみ設定可能です。 ただし、この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。 《機械翻訳》自動VACUUMコスト操作で使用されるデフォルト制限値を指定します。 -1が指定されている場合はノート、通常のvacuum_cost_limit値が使用されます。 複数のオートバキュームワーカーが存在する場合、各ワーカーの制限の総和がこの変数の値を超えないように、値が実行中のワーカー間で比例的に配分されるパラメータ。 このはpostgresql.confファイルまたはサーバコマンドラインでのみ設定できますが、テーブルストレージパラメータを変更することで個々の表の設定を上書きできます。

19.10.2. コストに基づくVacuum遅延 #

<title>Cost-based Vacuum Delay</title>

During the execution of <xref linkend="sql-vacuum"/> and <xref linkend="sql-analyze"/> commands, the system maintains an internal counter that keeps track of the estimated cost of the various I/O operations that are performed. When the accumulated cost reaches a limit (specified by <varname>vacuum_cost_limit</varname>), the process performing the operation will sleep for a short period of time, as specified by <varname>vacuum_cost_delay</varname>. Then it will reset the counter and continue execution. VACUUM および ANALYZE コマンドの実行中、実行される各種I/O操作の予測コストを追跡し続ける内部カウンタをシステムが保守します。 累積されたコストが(vacuum_cost_limitで指定された)限度に達すると、操作を実行しているプロセスはvacuum_cost_delayで指定されたちょっとの間スリープします。その後、カウンタをリセットし、実行を継続します。

The intent of this feature is to allow administrators to reduce the I/O impact of these commands on concurrent database activity. There are many situations where it is not important that maintenance commands like <command>VACUUM</command> and <command>ANALYZE</command> finish quickly; however, it is usually very important that these commands do not significantly interfere with the ability of the system to perform other database operations. Cost-based vacuum delay provides a way for administrators to achieve this. この機能の目的は、同時に実行されているデータベースの活動に対するこれらコマンドによるI/Oへの影響を、管理者が軽減できるようにすることです。 VACUUM および ANALYZEの様な保守用コマンドが即座に終了することが重要ではない事態が数多くあります。 しかし、他のデータベースの操作を行うに当たって、これらのコマンドがシステムの能力に多大な阻害を与えないことは通常とても重要です。 コストに基づいたvacuum遅延はこれを実現するための方法を管理者に提供します。

This feature is disabled by default for manually issued <command>VACUUM</command> commands. To enable it, set the <varname>vacuum_cost_delay</varname> variable to a nonzero value. 手動で実行したVACUUMコマンドについては、デフォルトでこの機能は無効になっています。 有効にするには、vacuum_cost_delay変数をゼロでない値に設定します。

vacuum_cost_delay (floating point) #

The amount of time that the process will sleep when the cost limit has been exceeded. If this value is specified without units, it is taken as milliseconds. The default value is <literal>0</literal>, which disables the cost-based vacuum delay feature. Positive values enable cost-based vacuuming. 《マッチ度[78.378378]》コストの限度を越えた場合、プロセスがスリープする時間の長さです。 この値が単位なしで指定された場合は、ミリ秒単位であるとみなします。 デフォルトの値は0で、コストに基づいたvacuum遅延機能を無効にします。 正の整数はコストに基づいたvacuumを有効にします。 《機械翻訳》コスト制限を超えたときにプロセスがスリープする時間です。 この値がユニットなしで指定された場合、ミリ秒とみなされます。 デフォルト値は0で、コストベースのバキューム遅延機能を無効にします。 正の値はコストベースのバキューム処理を有効にします。

When using cost-based vacuuming, appropriate values for <varname>vacuum_cost_delay</varname> are usually quite small, perhaps less than 1 millisecond. While <varname>vacuum_cost_delay</varname> can be set to fractional-millisecond values, such delays may not be measured accurately on older platforms. On such platforms, increasing <command>VACUUM</command>'s throttled resource consumption above what you get at 1ms will require changing the other vacuum cost parameters. You should, nonetheless, keep <varname>vacuum_cost_delay</varname> as small as your platform will consistently measure; large delays are not helpful. コストに基づいたバキューム処理を使用する場合、vacuum_cost_delayの適切な値は通常かなり小さくなり、おそらく1ミリ秒以下になります。 バキュームによるリソース消費の調整は、他のバキュームのコストパラメータを変更して行うことが最善です。 vacuum_cost_delayを1ミリ秒以下に設定することは可能ですが、そうした遅延は古いプラットフォームでは正確には計測されないかも知れません。 そうしたプラットフォームでは、VACUUMのリソース消費制限を1ミリ秒のときに得られる値以上にするには、他のVACUUMコストパラメータの変更が必要となるでしょう。 とは言うものの、使用するプラットフォームで常に計測できる範囲でvacuum_cost_delayをできるだけ小さくするようにしてください。 大きな遅延は助けになりません。

vacuum_cost_page_hit (integer) #

The estimated cost for vacuuming a buffer found in the shared buffer cache. It represents the cost to lock the buffer pool, lookup the shared hash table and scan the content of the page. The default value is <literal>1</literal>. 《マッチ度[75.982533]》共有バッファキャッシュの中のバッファにvacuumを掛ける予測コストです。バッファプールのロック、共有ハッシュテーブルの検索、およびページ内容のスキャンのコストを示します。デフォルトの値は1です。 《機械翻訳》共有バッファキャッシュにあるバッファバキューム処理の見積コスト。 バッファプールロックまでのコストを表し、共有ハッシュテーブルを参照し、ページのコンテンツスキャンを参照します。 デフォルト値は1です。

vacuum_cost_page_miss (integer) #

The estimated cost for vacuuming a buffer that has to be read from disk. This represents the effort to lock the buffer pool, lookup the shared hash table, read the desired block in from the disk and scan its content. The default value is <literal>2</literal>. 《マッチ度[78.378378]》ディスクから読み込まれなければならないバッファにvacuumを掛ける予測コストです。これが示すものは、バッファプールロックの試み、共有ハッシュテーブルの参照、ディスクから目的ブロックの読み込み、そしてその内容のスキャンです。デフォルトの値は2です。 《機械翻訳》バキューム処理の見積コストディスクから読み取る必要があるバッファ。 これは、バッファプールをロックし、共有ハッシュテーブルを検索し、ディスクから目的のブロックを読み取り、そのコンテンツをスキャンするための労力を表します。 デフォルト値は2です。

vacuum_cost_page_dirty (integer) #

The estimated cost charged when vacuum modifies a block that was previously clean. It represents the extra I/O required to flush the dirty block out to disk again. The default value is <literal>20</literal>. 《マッチ度[77.294686]》vacuumが、先だって掃除したブロックを変更するのに必要な推定コストです。 ダーティブロックを再度ディスクにフラッシュするのに必要な余分なI/Oを表します。デフォルトの値は20です。 《機械翻訳》バキュームが以前はきれいだったブロックを変更したときに請求される推定コスト。 これは、ダーティブロックを再びディスクにフラッシュするために必要な追加の入出力を表します。 デフォルト値は20です。

vacuum_cost_limit (integer) #

This is the accumulated cost that will cause the vacuuming process to sleep for <varname>vacuum_cost_delay</varname>. The default is <literal>200</literal>. 《マッチ度[75.641026]》vacuumを掛けるプロセスをvacuum_cost_delayの間スリープさせることになる累計されたコストです。 デフォルトの値は200です。 《機械翻訳》これは、vacuum_cost_delayのバキューム処理プロセスをスリープにする累積コストです。 デフォルトは200です。

注記

There are certain operations that hold critical locks and should therefore complete as quickly as possible. Cost-based vacuum delays do not occur during such operations. Therefore it is possible that the cost accumulates far higher than the specified limit. To avoid uselessly long delays in such cases, the actual delay is calculated as <varname>vacuum_cost_delay</varname> * <varname>accumulated_balance</varname> / <varname>vacuum_cost_limit</varname> with a maximum of <varname>vacuum_cost_delay</varname> * 4. 重要なロックを保有し可能なかぎり早急に完了しなければならないある種の操作があります。コストに基づいたvacuum遅延はこの様な操作では起こりません。 したがって、コストの累計が指定された限度をかなり高く超える可能性があります。 このような場合無駄な長い遅延を防止するため、実際の遅延はvacuum_cost_delay * 4 を上限として、以下のように計算されます。 vacuum_cost_delay * accumulated_balance / vacuum_cost_limit

19.10.3. Default Behavior #

vacuum_truncate (boolean) #

Enables or disables vacuum to try to truncate off any empty pages at the end of the table. The default value is <literal>true</literal>. If <literal>true</literal>, <command>VACUUM</command> and autovacuum do the truncation and the disk space for the truncated pages is returned to the operating system. Note that the truncation requires an <literal>ACCESS EXCLUSIVE</literal> lock on the table. The <literal>TRUNCATE</literal> parameter of <link linkend="sql-vacuum"><command>VACUUM</command></link>, if specified, overrides the value of this parameter. The setting can also be overridden for individual tables by changing table storage parameters. 《機械翻訳》「バキュームからトライ」を有効または無効にして、オフの最後にある空のページを切り捨てます。 デフォルト値はtrueです。 true,VACUUMおよびオートバキュームが切り捨てを行うと、切り捨てられたページのディスクスペースがオペレーティングシステムに戻されます。 切捨てにはテーブルのACCESS EXCLUSIVEロックが必要なノートです。 VACUUMTRUNCATEパラメータを指定すると、このパラメータの値が上書きされます。 テーブルストレージパラメータを変更すると、個々の表の設定を上書きすることもできます。 テーブル

19.10.4. Freezing #

To maintain correctness even after transaction IDs wrap around, <productname>PostgreSQL</productname> marks rows that are sufficiently old as <emphasis>frozen</emphasis>. These rows are visible to everyone; other transactions do not need to examine their inserting XID to determine visibility. <command>VACUUM</command> is responsible for marking rows as frozen. The following settings control <command>VACUUM</command>'s freezing behavior and should be tuned based on the XID consumption rate of the system and data access patterns of the dominant workloads. See <xref linkend="vacuum-for-wraparound"/> for more information on transaction ID wraparound and tuning these parameters. 《機械翻訳》トランザクションIDが循環した後でも正確さを維持するために、PostgreSQLは十分に古い行を凍結済としてマークします。 これらの行はすべての人にとって可視です。 他のトランザクションは挿入XIDを検査する必要はありません。 VACUUMはマーキング行を凍結済として扱います。 次の設定はコントロールVACUUMの凍結動作であり、主要なワークロードのシステムとデータアクセスのパターンのXID消費レートに基づいて調整する必要があります。 これらのパラメータのトランザクションIDの周回とチューニングの詳細は24.1.5を参照してください。

vacuum_freeze_table_age (integer) #

<command>VACUUM</command> performs an aggressive scan if the table's <structname>pg_class</structname>.<structfield>relfrozenxid</structfield> field has reached the age specified by this setting. An aggressive scan differs from a regular <command>VACUUM</command> in that it visits every page that might contain unfrozen XIDs or MXIDs, not just those that might contain dead tuples. The default is 150 million transactions. Although users can set this value anywhere from zero to two billion, <command>VACUUM</command> will silently limit the effective value to 95% of <xref linkend="guc-autovacuum-freeze-max-age"/>, so that a periodic manual <command>VACUUM</command> has a chance to run before an anti-wraparound autovacuum is launched for the table. For more information see <xref linkend="vacuum-for-wraparound"/>. 《マッチ度[86.935287]》テーブルのpg_class.relfrozenxidフィールドがこの設定で指定した時期に達すると、VACUUMは積極的なテーブルスキャンを行います。 積極的なスキャンは、無効タプルを含む可能性のあるページだけではなく、凍結されていないXIDあるいはMXIDを含むすべてのページを読む点で通常のVACUUMとは異なります。 デフォルトは1.5億トランザクションです。 ユーザはこの値をゼロから20億までの任意の値に設定することができますが、VACUUMは警告することなく、周回問題対策のautovacuumがテーブルに対して起動する前に定期的な手動VACUUMが実行する機会を持つように、autovacuum_freeze_max_ageの95%に実効値を制限します。 詳細は24.1.5を参照してください。 《機械翻訳》VACUUMは、テーブルのpg_class.relfrozenxidスキャンがこの設定で指定された経過時間に達した場合、積極的なクラスを実行します。 積極的なフィールドは、通常のVACUUM不要なタプルを含む可能性のあるページだけでなく、フリーズされていないXIDまたはMXIDを含む可能性のあるすべてのデフォルトを訪問するとは異なります。 デフォルトは150,000,000トランザクションです。 ユーザはこの値をゼロから2,000,000,000までの任意の場所に設定できますが、VACUUMは暗黙的に実効値をautovacuum_freeze_max_ageの95%に制限します。 これにより、テーブルに対して反ラップアラウンドの自動バキュームが起動される前に、定期的な手動VACUUMが実行される可能性があります。 詳細は24.1.5を参照してください。

vacuum_freeze_min_age (integer) #

Specifies the cutoff age (in transactions) that <command>VACUUM</command> should use to decide whether to trigger freezing of pages that have an older XID. The default is 50 million transactions. Although users can set this value anywhere from zero to one billion, <command>VACUUM</command> will silently limit the effective value to half the value of <xref linkend="guc-autovacuum-freeze-max-age"/>, so that there is not an unreasonably short time between forced autovacuums. For more information see <xref linkend="vacuum-for-wraparound"/>. 《マッチ度[84.870849]》VACUUMが、古いXIDを持つページをフリーズするきっかけとするかどうかを決定する、カットオフ年代を(トランザクション単位で)指定します。 デフォルトは5千万トランザクションです。 ユーザはこの値を0から10億までの間で任意の値に設定することができますが、VACUUMは警告なくautovacuum_freeze_max_ageの半分までの値に値を制限します。 このため、強制的なautovacuumの間隔が不合理に短くなることはありません。 詳細は24.1.5を参照してください。 《機械翻訳》古いXIDを持つページの凍結をトリガするかどうかを決定するためにVACUUMが使用すべきカットオフの経過時間(トランザクション単位)を指定します。 デフォルトは50,000,000トランザクションです。 ユーザはこの値をゼロから10億までの任意の値に設定することができますが、VACUUMは自動的に実効値をautovacuum_freeze_max_ageの半分の値に制限するので、強制的な自動バキュームの間隔が不当に短くなることがありません。 詳細は24.1.5を参照してください。

vacuum_failsafe_age (integer) #

Specifies the maximum age (in transactions) that a table's <structname>pg_class</structname>.<structfield>relfrozenxid</structfield> field can attain before <command>VACUUM</command> takes extraordinary measures to avoid system-wide transaction ID wraparound failure. This is <command>VACUUM</command>'s strategy of last resort. The failsafe typically triggers when an autovacuum to prevent transaction ID wraparound has already been running for some time, though it's possible for the failsafe to trigger during any <command>VACUUM</command>. 《マッチ度[86.372007]》VACUUMがシステム全体に渡るトランザクションID周回障害を避けるために異例の措置を取るようになる、テーブルのpg_class.relfrozenxidフィールドが到達する最大の(トランザクション数単位での)年齢を指定します。 これはVACUUMの最後の手段となる戦略です。 この安全機構は典型的には、トランザクションID周回を防ぐための自動バキュームがすでに走っているときに起動されます。 しかし、すべてのVACUUMの実行中にこの安全機構が起動する可能性があります。 《機械翻訳》テーブルpg_classの最大有効期間(トランザクション単位)を指定します。 relfrozenxidフィールドは前を獲得することができますVACUUMシステム全体のトランザクションIDの周回障害を回避するために特別な措置を講じます。 これはVACUUMの最後の手段のストラテジです。 通常、フェイルセーフは、トランザクションIDの周回を回避するためのオートバキュームがすでにしばらく実行されている場合にトリガされますが、VACUUMの間にトリガにフェイルセーフを行うことは可能です。

When the failsafe is triggered, any cost-based delay that is in effect will no longer be applied, further non-essential maintenance tasks (such as index vacuuming) are bypassed, and any <glossterm linkend="glossary-buffer-access-strategy">Buffer Access Strategy</glossterm> in use will be disabled resulting in <command>VACUUM</command> being free to make use of all of <glossterm linkend="glossary-shared-memory">shared buffers</glossterm>. 《マッチ度[87.301587]》この安全機構が起動すると、すべての有効なコストに基づく遅延はもはや適用されず、(インデックスのバキュームのような)必須ではない保守タスクは迂回されます。 使用中のバッファアクセスストラテジは無効になり、その結果VACUUM共有バッファのすべてを自由に使用することになります。 《機械翻訳》フェイルセーフがトリガされると、有効なコストベースの遅延は適用されなくなり、それ以降の重要でないメンテナンスタスク(インデックスバキューム処理など)はバイパスされ、使用中のバッファアクセスストラテジは無効になり、VACUUMフリーは共有バッファのすべてをmakeで使用することになる。

The default is 1.6 billion transactions. Although users can set this value anywhere from zero to 2.1 billion, <command>VACUUM</command> will silently adjust the effective value to no less than 105% of <xref linkend="guc-autovacuum-freeze-max-age"/>. 《マッチ度[83.132530]》デフォルトは16億トランザクションです。 ユーザはこの値をゼロから21億までの間で設定できますが、VACUUMautovacuum_freeze_max_ageの105%よりも小さくならないように実際の値を調整します。 《機械翻訳》デフォルトは1,600,000,000トランザクションです。 ユーザはこの値をゼロから2,100,000,000までの任意の値に設定できますが、VACUUMは暗黙的に実効値をより小さいなしautovacuum_freeze_max_ageの105%に調整します。

vacuum_multixact_freeze_table_age (integer) #

<command>VACUUM</command> performs an aggressive scan if the table's <structname>pg_class</structname>.<structfield>relminmxid</structfield> field has reached the age specified by this setting. An aggressive scan differs from a regular <command>VACUUM</command> in that it visits every page that might contain unfrozen XIDs or MXIDs, not just those that might contain dead tuples. The default is 150 million multixacts. Although users can set this value anywhere from zero to two billion, <command>VACUUM</command> will silently limit the effective value to 95% of <xref linkend="guc-autovacuum-multixact-freeze-max-age"/>, so that a periodic manual <command>VACUUM</command> has a chance to run before an anti-wraparound is launched for the table. For more information see <xref linkend="vacuum-for-multixact-wraparound"/>. 《マッチ度[88.106796]》pg_class.relminmxidフィールドがこの設定値で指定した年代に達するとVACUUMはテーブルの積極的なスキャンを行います。 積極的なスキャンは、無効タプルを含む可能性のあるページだけではなく、凍結XIDあるいはMXIDを含むすべてのページを読む点で通常のVACUUMとは異なります。 デフォルトは1億5千万トランザクションです。 ユーザは0から20億まで任意の値を設定できますが、テーブルに対してラップアラウンド防止処理が起動される前に定期的な手動VACUUMが走ることができるように、VACUUMautovacuum_multixact_freeze_max_ageの95%に暗黙的に制限します。 詳細は24.1.5.1をご覧ください。 《機械翻訳》VACUUMテーブルのpg_frozen.relminmxidスキャンがこの設定で指定された経過時間に達した場合、積極的なクラスを実行します。 積極的なフィールドは、通常のスキャンとは異なります。 VACUUM通常のページは、デッドタプルを含む可能性のあるものだけでなく、フリーズされていないXIDまたはMXIDを含む可能性のあるすべてのを訪問します。 デフォルトは150,000,000のマルチスケールです。 ユーザはこの値をゼロから2,000,000,000までの任意の場所に設定できますが、VACUUMは暗黙のうちに実効値をautovacuum_multixact_freeze_max_ageの95%に制限します。 これにより、定期的なVACUUMアンチを実行する機会があります。 テーブルに対して-周回が起動されます。 詳細は24.1.5.1を参照してください。 マニュアル前

vacuum_multixact_freeze_min_age (integer) #

Specifies the cutoff age (in multixacts) that <command>VACUUM</command> should use to decide whether to trigger freezing of pages with an older multixact ID. The default is 5 million multixacts. Although users can set this value anywhere from zero to one billion, <command>VACUUM</command> will silently limit the effective value to half the value of <xref linkend="guc-autovacuum-multixact-freeze-max-age"/>, so that there is not an unreasonably short time between forced autovacuums. For more information see <xref linkend="vacuum-for-multixact-wraparound"/>. 《マッチ度[86.987522]》VACUUMがテーブルをスキャンする際に、ページを凍結するきっかけとするかどうかを決める下限値をマルチトランザクション単位で指定します。 デフォルトは500万マルチトランザクションです。 ユーザは0から10億まで任意の値を設定できますが、強制的な自動バキュームの間隔が短くなり過ぎないように、VACUUMautovacuum_multixact_freeze_max_ageの半分に暗黙的に実効的な値を制限します。 詳細は24.1.5.1をご覧ください。 《機械翻訳》古いトリガのページを凍結するかどうかを決定するためにVACUUMが使用すべきカットオフマルチトランザクションID multixactsを指定します。 デフォルトは5,000,000 multixactsです。 ユーザはこの値をゼロから10億までの任意の値に設定することができますが、VACUUMは暗黙のうちに実効値をautovacuum_multixact_freeze_max_ageの半分の値に制限します。 そのため、強制的な自動バキュームの間隔が不当に短くなることはありません。 詳細は24.1.5.1を参照してください。

vacuum_multixact_failsafe_age (integer) #

Specifies the maximum age (in multixacts) that a table's <structname>pg_class</structname>.<structfield>relminmxid</structfield> field can attain before <command>VACUUM</command> takes extraordinary measures to avoid system-wide multixact ID wraparound failure. This is <command>VACUUM</command>'s strategy of last resort. The failsafe typically triggers when an autovacuum to prevent transaction ID wraparound has already been running for some time, though it's possible for the failsafe to trigger during any <command>VACUUM</command>. 《マッチ度[86.219739]》VACUUMがシステム全体マルチトランザクションID周回障害を避けるために異例の措置を取るようになる、テーブルのpg_class.relminmxidフィールドが到達する最大の(マルチトランザクション数単位での)年齢を指定します。 これはVACUUM最後の手段となる戦略です。 この安全機構は典型的には、トランザクションID周回を防ぐための自動バキュームがすでに走っているときに起動されます。 しかし、すべてのVACUUMの実行中にこの安全機構が起動する可能性があります。 《機械翻訳》テーブルpg_classの最大有効期間を(マルチxactsで)指定します。 relminmxidフィールドは前を獲得することができますVACUUMシステム全体のマルチトランザクションIDの周回障害を回避するために特別な措置を講じます。 これはVACUUMの最後の手段のストラテジです。 通常、フェイルセーフは、トランザクションIDの周回を回避するためのオートバキュームがすでにしばらく実行されているときにトリガされますが、VACUUMの間にトリガにフェイルセーフすることは可能です。

When the failsafe is triggered, any cost-based delay that is in effect will no longer be applied, and further non-essential maintenance tasks (such as index vacuuming) are bypassed. 《マッチ度[86.740331]》この安全機構が起動すると、すべての有効なコストに基づく遅延はもはや適用されず、(インデックスのバキュームのような)必須ではない保守タスクは迂回されます。 《機械翻訳》この安全機構が起動すると、すべての有効なコストに基づく遅延はもはや適用されず、(インデックスのバキュームのような)必須ではない保守タスクは迂回されます。

The default is 1.6 billion multixacts. Although users can set this value anywhere from zero to 2.1 billion, <command>VACUUM</command> will silently adjust the effective value to no less than 105% of <xref linkend="guc-autovacuum-multixact-freeze-max-age"/>. 《マッチ度[83.657588]》デフォルトは16億マルチトランザクションです。 ユーザはこの値をゼロから21億までの間で設定できますが、VACUUMautovacuum_multixact_freeze_max_ageの105%よりも小さくならないように実際の値を調整します。 《機械翻訳》デフォルトは1,600,000,000マルチトランザクションです。 ユーザはこの値をゼロから2,100,000,000までの任意の場所に設定できますが、VACUUMは暗黙のうちに実効値をより小さいなしautovacuum_multixact_freeze_max_ageの105%に調整します。

vacuum_max_eager_freeze_failure_rate (floating point) #

Specifies the maximum number of pages (as a fraction of total pages in the relation) that <command>VACUUM</command> may scan and <emphasis>fail</emphasis> to set all-frozen in the visibility map before disabling eager scanning. A value of <literal>0</literal> disables eager scanning altogether. The default is <literal>0.03</literal> (3%). 《機械翻訳》ページの最大数を指定しますVACUUMリレーションのページの合計に対する割合として。 可視性マップ前では、早期スキャンを無効にしてオール凍結を設定できます設定できない場合もあります。 値が0の場合、早期スキャンが完全に無効になります。 デフォルトは0.03(3%)です。

Note that when eager scanning is enabled, only freeze failures count against the cap, not successful freezing. Successful page freezes are capped internally at 20% of the all-visible but not all-frozen pages in the relation. Capping successful page freezes helps amortize the overhead across multiple normal vacuums and limits the potential downside of wasted eager freezes of pages that are modified again before the next aggressive vacuum. 《機械翻訳》ノートでは、Eager Scanningが有効になっている場合、フリーズのみが上限に対してカウントで失敗し、凍結の成功ではありません。 成功したページの凍結は、リレーション内の完全に凍結されたページではなく、完全に凍結されたページの20%に内部的に上限が設定されます。 成功したページの凍結に上限を設定すると、マルチプルの通常のバキューム全体でオーバーヘッドを償却し、次の積極的なバキュームの前で再び変更されるの無駄なEager Freezeの潜在的なマイナス面を制限できます。 可視

This parameter can only be set in the <filename>postgresql.conf</filename> file or on the server command line; but the setting can be overridden for individual tables by changing the <link linkend="reloption-vacuum-max-eager-freeze-failure-rate"> corresponding table storage parameter</link>. For more information on tuning vacuum's freezing behavior, see <xref linkend="vacuum-for-wraparound"/>. 《機械翻訳》このパラメータはpostgresql.confファイルまたはサーバコマンドラインでのみ設定できますが、対応するテーブルストレージパラメータを変更することで、個々のテーブルの設定を上書きできます。 チューニングバキュームのフリーズ動作の詳細については、24.1.5を参照してください。