Nesta página, descrevemos a filtragem adaptativa no AlloyDB.
A filtragem adaptativa analisa padrões de consulta e distribuições de dados durante a execução da consulta para escolher dinamicamente a estratégia de filtragem mais eficiente, como filtragem inline ou pré-filtragem.
O otimizador de consultas do AlloyDB usa a análise baseada em custos para determinar se a filtragem inline ou a pré-filtragem oferece o melhor desempenho em qualquer ponto durante a execução da consulta.
Essa otimização é benéfica para as pesquisas vetoriais filtradas do AlloyDB, em que a filtragem adaptativa alterna automaticamente entre o uso de vetores e índices de metadados para garantir resultados eficientes e precisos sem a sua intervenção manual.
Ativar a filtragem adaptativa
Para ativar a filtragem adaptativa, use a flag scann.enable_preview_features
.
Quando a filtragem adaptativa aciona uma alteração da filtragem inline para a pré-filtragem durante a execução, o plano de consulta é alterado dinamicamente.
Por exemplo, o plano pode mostrar Bitmap assisted pre-filtering
no campo Estratégia de Execução quando o otimizador determina que a pré-filtragem é mais eficiente naquele ponto da consulta. Essa alteração dinâmica ocorre à medida que o sistema se adapta aos dados reais encontrados durante a execução da consulta.
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)