このページでは、AlloyDB Omni で適応型フィルタリングを使用する方法について説明します。このページでは、AlloyDB Omni で適応型フィルタリングを使用する方法について説明します。
適応型フィルタリングは、クエリ実行中にクエリパターンとデータ分布を分析し、インライン フィルタリングや事前フィルタリングなど、最も効率的なフィルタリング戦略を動的に選択します。
AlloyDB Omni クエリ オプティマイザーは、コストベースの分析を使用して、クエリ実行中の特定の時点でインライン フィルタリングと事前フィルタリングが最適なパフォーマンスを提供できるかどうかを判断します。
このような最適化は、AlloyDB Omni のフィルタリングされたベクトル検索に役立ちます。適応型フィルタリングでは、ベクトルとメタデータのインデックスの使用が自動的に切り替わり、手動操作なしで効率的で正確な結果が得られます。
適応型フィルタリングを有効にする
適応型フィルタリングを有効にするには、scann.enable_preview_features フラグを使用します。
適応型フィルタリングにより、実行中にインライン フィルタリングから事前フィルタリングへの切り替えがトリガーされると、クエリプランが動的に変更されます。
たとえば、オプティマイザーがクエリのその時点で事前フィルタリングがより効率的であると判断した場合、プランの [実行戦略] フィールドに Bitmap assisted pre-filtering と表示されます。この動的変更は、クエリの実行中に検出された実際のデータにシステムが適応するときに行われます。
Limit (actual rows=10 loops=1)
-> Custom Scan (vector scan) on t1 (actual rows=10 loops=1)
Execution Strategy: Bitmap assisted pre-filtering
Order By: (vec_col <=> '[...]'::vector)
Limit: 10
Num Requalifications: 0
Num filtered: 1000
-> Bitmap Index Scan on btree_idx (actual rows=10000 loops=1)
Index Cond: (int_col <= 100000000)