VCIを利用する場合の注意事項を説明します。
VCIの利用有無にかかわらず、結果の内容は変わりません。ただし、“ORDER BY”が指定されていない場合は、レコードの返却順については変わる可能性があります。
リソースの消費を制限するため、特定の時間帯や特定の業務(SQLアプリケーション)においてのみ本機能を利用する場合は、postgresql.confのパラメータ編集やSET文により“vci.enable”パラメータの有効化/無効化を行ってください。
オプティマイザヒント(pg_hint_plan)にVCIは指定できません。指定した場合、そのヒント句は無視されます。
オプティマイザヒント(pg_hint_plan)にVCI以外のプランを指定した場合でも、VCIが利用される場合があります。このため、ヒント句で問い合わせ計画を指定する場合は、SET文で“vci.enable”パラメータにoffを指定してください。
ストリーミングレプリケーションのスタンバイサーバでVCIを利用した検索を行うと、以下のメッセージが出力されることがあります。
“LOG: recovery has paused”
“HINT: Execute pg_wal_replay_resume() to continue.”
本メッセージは、VCIを利用した検索によりVCIに対するWALの適用が一時的に待機するために出力されます。
VCIを利用した検索を実行した場合でも、収集済み統計情報ビューであるpg_stat_all_indexesおよびpg_stat_user_indexesのidx_scan、idx_tup_read、idx_tup_fetch列の情報は更新されません。