Activer le filtrage adaptatif dans AlloyDB Omni

Cette page décrit le filtrage adaptatif dans AlloyDB Omni.

Le filtrage adaptatif analyse les modèles de requêtes et les distributions de données lors de l'exécution des requêtes afin de choisir de manière dynamique la stratégie de filtrage la plus efficace, comme le filtrage intégré ou le préfiltrage.

L'optimiseur de requêtes AlloyDB Omni utilise une analyse basée sur les coûts pour déterminer si le filtrage intégré ou le préfiltrage offre les meilleures performances à un moment donné de l'exécution de la requête.

Cette optimisation est bénéfique pour les recherches vectorielles filtrées d'AlloyDB Omni, où le filtrage adaptatif bascule automatiquement entre l'utilisation de l'index vectoriel et de l'index de métadonnées pour garantir des résultats efficaces et précis sans intervention manuelle.

Activer le filtrage adaptatif

Pour activer le filtrage adaptatif, utilisez l'option scann.enable_preview_features.

Lorsque le filtrage adaptatif déclenche un passage du filtrage intégré au préfiltrage lors de l'exécution, le plan de requête change de manière dynamique.

Par exemple, le plan peut afficher Bitmap assisted pre-filtering dans le champ Stratégie d'exécution lorsque l'optimiseur détermine que le préfiltrage est plus efficace à ce stade de la requête. Ce changement dynamique se produit lorsque le système s'adapte aux données réelles qu'il rencontre lors de l'exécution de la requête.

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)

Étape suivante