VCIは、サーバ内の空きリソースを活用して、検索処理の高速化を実現します。
様々な場面で高速化が望めますが、特に以下の条件を多く満たす場合に、高い効果を得ることができます。
単一表の処理である
テーブルの多くの行を扱う処理である
テーブルの一部の列を扱う処理である
sumやaverageなど複数の集約処理を同時に実行するような、非常に重い集計を行う処理である
以下の場合は、VCIが利用されないため、事前に有効性の判断が必要です。
対象のテーブルや列のデータ型が、VCIの制限事項を含む場合
対象のSQL文が、VCIの動作条件を満たさない場合
コスト計算によりVCIが遅いと判断された場合
注意
VCIを利用した運用を行う場合には、postgresql.confのfull_page_writesパラメータの設定が有効(on)でなければなりません。そのため、本パラメータが無効(off)となっている場合には、VCIに対する一連の操作がエラーとなります。また、一時的にfull_page_writesパラメータの設定を無効(off)にしてVCIを作成しないテーブルについて操作を行う場合には、その間、VCIの作成やVCIを作成したテーブルに対する操作を行わないでください。
参照
VCIの制限事項については、“9.1.4 VCIを利用できるデータ”を参照してください。
VCIの動作条件については、“アプリケーション開発ガイド”の“Vertical Clustered Index(VCI)を利用した検索”の“動作条件”を参照してください。