Adaptive Filterung in AlloyDB for PostgreSQL aktivieren

Auf dieser Seite wird das adaptive Filtern in AlloyDB beschrieben.

Beim adaptiven Filtern werden Abfragemuster und Datenverteilungen während der Abfrageausführung analysiert, um dynamisch die effizienteste Filterstrategie auszuwählen, z. B. Inline- oder Vorfilterung.

Das AlloyDB-Abfrageoptimierungstool verwendet eine kostenbasierte Analyse, um zu ermitteln, ob Inline-Filterung oder Vorabfilterung zu einem bestimmten Zeitpunkt während der Abfrageausführung die beste Leistung bietet.

Diese Optimierung ist für die gefilterten Vektorsuchen von AlloyDB von Vorteil, bei denen durch adaptives Filtern automatisch zwischen der Verwendung von Vektor- und Metadatenindex gewechselt wird, um effiziente und genaue Ergebnisse ohne manuellen Eingriff zu erzielen.

Adaptives Filtern aktivieren

Verwenden Sie das Flag scann.enable_preview_features, um die adaptive Filterung zu aktivieren.

Wenn durch adaptives Filtern während der Ausführung ein Wechsel von Inline-Filtern zu Vorabfiltern ausgelöst wird, ändert sich der Abfrageplan dynamisch.

Im Plan kann beispielsweise Bitmap assisted pre-filtering im Feld Ausführungsstrategie angezeigt werden, wenn das Optimierungsprogramm feststellt, dass Vorabfilterung an dieser Stelle in der Abfrage effizienter ist. Diese dynamische Änderung erfolgt, wenn das System sich an die tatsächlichen Daten anpasst, die während der Ausführung der Abfrage auftreten.

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)

Nächste Schritte