VCIを使用するためには、事前に以下の設計を行います。
集計処理を行うVCIを利用した検索に割り当て可能なCPUコア数から、最大同時実行SQL文数と並列数を決定します。VCIを利用した検索を行うSQL文をどれだけの多重度で実行するのか、どれだけの並列数でVCIを利用した検索を行うのかを事前に設計してください。
例えば、割り当て可能なCPU数が32コアの場合、最大同時実行SQL文が8、並列数は4、などのように設計します。
注意
VCIを利用した検索では、SQL文ごとに動的共有メモリとして一時ファイルを“/dev/shm”、またはvci.smc_directoryパラメータに指定したディレクトリに作成します。そのため、“導入ガイド(サーバ編)”の“VCIで使用するメモリの見積り式”の“検索時にクエリごとに消費されるメモリ量”を参照し、本メモリ容量が本ディレクトリで十分確保できることも併せて、SQL文の実行多重度と並列数を見積もってください。万が一、検索実行時点で本ディレクトリの容量が不足している場合には、メモリ不足でSQL文がエラーとなります。
VCIを利用した検索では、SQL文ごとに動的共有メモリとして一時ファイルをデータ格納ディレクトリのサブディレクトリ、またはvci.smc_directoryパラメータに指定したディレクトリに作成します。そのため、“導入ガイド(サーバ編)”の“VCIで使用するメモリの見積り式”の“検索時にクエリごとに消費されるメモリ量”を参照し、本メモリ容量が本ディレクトリで十分確保できることも併せて、SQL文の実行多重度と並列数を見積もってください。万が一、検索実行時点で本ディレクトリの容量が不足している場合には、メモリ不足でSQL文がエラーとなります。
インスタンスを作成した直後のパラメータの設定では、VCIの並列検索機能は利用できません。
そのため、上記の“SQL文の実行多重度と並列数の設計”で設計した値を元に、以下のパラメータを設定します。
パラメータ名 | 用途 | デフォルト | 値の指標 |
---|---|---|---|
vci.max_parallel_degree | 1つのSQL文で利用するVCIの並列処理プロセス(バックグラウンドプロセス)の上限数を設定します。 | 0 | 並列数を指定します。 |
vci.smc_directory | VCIを利用した検索時に動的共有メモリとして一時ファイルを作成するディレクトリ名を指定します。 | /dev/shm データ格納ディレクトリのサブディレクトリ(データ格納ディレクトリ\\base\\pgsql_tmp) | 検索時にクエリごとに消費されるメモリ量を満たす空き容量が確保できるディレクトリを指定します。 |
max_worker_processes | システムがサポートするバックグラウンドプロセスの最大数を指定します。 | 8 | VCIを利用した検索を行う最大同時実行SQL文数×vci.max_parallel_degreeの値を加算します。 |
参照
パラメータの詳細および設定については、“運用ガイド”の“パラメータ”を参照してください。