本页面介绍了如何在 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)