Auf dieser Seite wird beschrieben, wie Sie den adaptiven Filter in AlloyDB Omni verwenden. Auf dieser Seite wird beschrieben, wie Sie den adaptiven Filter in AlloyDB Omni verwenden.
Beim adaptiven Filtern werden Abfragemuster und Datenverteilungen während der Abfrageausführung analysiert, um dynamisch die effizienteste Filterstrategie auszuwählen, z. B. Inline- oder Vorabfilterung.
Der AlloyDB Omni-Abfrageoptimierer verwendet eine kostenbasierte Analyse, um zu ermitteln, ob das Inline-Filtern oder das Vorabfiltern zu einem bestimmten Zeitpunkt während der Abfrageausführung die beste Leistung bietet.
Diese Optimierung ist für die gefilterten Vektorsuchen von AlloyDB Omni von Vorteil. Bei der adaptiven Filterung wird automatisch zwischen dem Vektor- und dem Metadatenindex gewechselt, um effiziente und genaue Ergebnisse ohne manuelle Eingriffe zu erzielen.
Adaptive Filterung aktivieren
Verwenden Sie das Flag scann.enable_preview_features
, um den adaptiven Filter zu aktivieren.
Wenn der adaptive Filter während der Ausführung einen Wechsel vom Inline-Filter zum Vorabfilter auslöst, ändert sich der Abfrageplan dynamisch.
Im Plan kann beispielsweise Bitmap assisted pre-filtering
im Feld Ausführungsstrategie angezeigt werden, wenn das Optimierungsprogramm feststellt, dass eine Vorabfilterung an dieser Stelle in der Abfrage effizienter ist. Diese dynamische Änderung tritt auf, wenn sich das System an die tatsächlichen Daten anpasst, die bei der Ausführung der Abfrage gefunden werden.
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)