ページの先頭行へ戻る
Enterprise Postgres 9.5 運用ガイド
FUJITSU Software

9.1.3 セットアップ

VCIのセットアップについて説明します。

VCIのセットアップは、以下の流れで実施します。

セットアップの流れ

  1. パラメータの設定

  2. 拡張のインストール

  3. VCIの作成

  4. VCIが作成されていることの確認

9.1.3.1 パラメータの設定

postgresql.confファイルを編集し、VCIに必要なパラメータを設定します。postgresql.confファイルの編集後は、インスタンスを起動、または再起動してください。

事前に設定が必要、または推奨するパラメータについて示します。

パラメータ名

設定値

説明

パラメータの省略

shared_preload_libraries

vci, pg_prewarm

VCI、および事前ロード機能の共用ライブラリ名を指定します。

省略不可

session_preload_libraries

vci, pg_prewarm

VCI、および事前ロード機能の共用ライブラリ名を指定します。

省略不可

reserve_buffer_ratio

ステーブルバッファテーブルに使用する共用メモリの割合(%)

共用メモリのうち、ステーブルバッファテーブルに使用する割合を、パーセンテージの値で指定します。

省略可

vci.control_max_workers

VCIを管理するバックグラウンドワーカーの数

VCIを管理するバックグラウンドワーカー数を指定します。

この値を

max_worker_processesに加える必要があります。

省略可

vci.max_parallel_degree

並列検索で使用するバックグラウンドワーカーの最大数

並列検索で使用するバックグラウンドワーカーの最大数を指定します。

この値を

max_worker_processesに加える必要があります。

省略可

shared_preload_libraries = ‘vci, pg_prewarm’
session_preload_libraries = ‘vci, pg_prewarm’
reserve_buffer_ratio = 20
vci.control_max_workers = 8 
vci.max_parallel_degree = 4
max_worker_processes = 18 # 例. 元が6であった場合、6 + 8 + 4 = 18

参照

  • VCI用の全パラメータについては、“付録A パラメータ”を参照してください。また、各パラメータのデフォルト値、および指定範囲などの詳細についても同様に参照してください。ただし、“shared_preload_libraries”、“session_preload_libraries”、“max_worker_processes”の詳細は、“PostgreSQL文書”の“サーバの管理”の“サーバの設定”を参照してください。

  • VCIを使用する場合、procfsがマウントされていない状態でインスタンスの起動を行うと、エラーが発生します。インスタンスの起動時は、事前にprocfsのマウント状態を確認してください。

9.1.3.2 拡張のインストール

CREATE EXTENSION文を実行し、VCIとpg_prewarmの拡張をインストールします。拡張のインストールはデータベース単位に必要です。

注意

  • VCIの拡張インストールは、スーパーユーザーのみ実行可能です。

  • VCIの拡張インストールは、publicスキーマに対してのみ実行可能です。

  • VCIの拡張に対して実行できない操作があります。詳細は、“9.2.1 VCIに対して利用できないコマンド”を参照してください。

9.1.3.3 VCIの作成

CREATE INDEXのUSING句に“vci”を指定して実行し、対象となる列にVCIを作成します。また、WITH句のstable_bufferパラメータに“true”を指定し、ステーブルバッファ機能を有効にします。

VCI用にディスクを分ける場合は、TABLESPACE句に適切なテーブルスペースを指定してください。

db01=# CREATE INDEX idx_vci ON table01 USING vci (col01, col02) WITH (stable_buffer=true);

注意

  • CREATE INDEXのON句に指定できないテーブル種別があります。詳細は、“9.1.4.1 リレーション種別”を参照してください。

  • CREATE INDEXの列指定に指定できないデータ型があります。詳細は、“9.1.4.2 データ型”を参照してください。

  • VCIに対して、実行できない操作があります。詳細は、“9.2.1 VCIに対して利用できないコマンド”を参照してください。

  • CREATE INDEXの列指定に、同じ列を複数指定することはできません。

  • テンプレートデータベースに属するテーブルの列に対して、VCIを作成することはできません。

  • CREATE INDEXを実行すると、VCIの他に、“vci_{10桁のリレーションOID}_{5桁のリレーション属性}_{リレーション種別を示す1桁の数値、または文字}”という名前で、複数のビューが作成されます。これらのビューを、VCI内部リレーションといいます。VCI内部リレーションはVCIの集計処理で使用する資源のため、更新、削除は行わないでください。

  • VCIの作成では、指定した列のすべてのデータを列形式に置き換えるため、データが挿入された既存テーブルに対してCREATE INDEXを実行する場合は、一般的なインデックス(B-tree)に比べ時間を要します。ただし、CREATE INDEX中の業務の継続は可能です。

9.1.3.4 VCIが作成されていることの確認

SELECT文の実行によりpg_indexesカタログを参照し、対象となる列にVCIが作成されていることを確認します。

db01=# SELECT indexdef FROM pg_indexes WHERE indexdef LIKE '%vci%';
                         indexdef                         
----------------------------------------------------------
CREATE INDEX idx_vci ON table01 USING vci (col01, col02)
(1 row)