L'accelerazione della funzione AI ti consente di ottimizzare le prestazioni quando esegui query che utilizzano le funzioni AI. Fornisce prestazioni uguali o migliori rispetto alle funzioni basate su array , senza richiedere la scrittura di query complesse. Per ulteriori informazioni sulle funzioni AI, consulta la panoramica delle funzioni AI.
L'accelerazione della funzione AI supporta le seguenti funzioni AI:
ai.if: l'accelerazione si applica solo alle querySELECTin cui la funzione si trova nella clausolaWHERE. Supporta una singola funzioneai.ifper scansione e funziona con la scansione sequenziale, dell'indice e dell'heap bitmap. Se una query contiene più scansioni di tabelle, ad esempio su tabelle, relazioni o espressioni di tabelle comuni (CTE) diverse, puoi accelerare una funzioneai.ifper scansione.ai.rank: l'accelerazione si applica solo alle querySELECTin cui la funzione si trova nella clausolaORDER BY. Supporta una singola funzioneai.rankper scansione. Se una query contiene più scansioni di tabelle, ad esempio su tabelle, relazioni o CTE diverse, puoi accelerare una funzioneai.rankper scansione.
Abilitare l'accelerazione della funzione AI
Per abilitare l'accelerazione della funzione AI, imposta il
google_ml_integration.enable_ai_function_acceleration flag su on. Questo flag è disattivato per impostazione predefinita e controlla se l'esecutore di query è autorizzato a scaricare le operazioni AI idonee nel nodo di applicazione della funzione AI per l'accelerazione.
Se non è impostato o è impostato su off, tutte le operazioni di query vengono eseguite dall'esecutore PostgreSQL standard.
Puoi configurare questo flag a livello di sessione o di istanza.
Per abilitare l'accelerazione della funzione AI a livello di istanza, utilizza il comando gcloud
alloydb instances update:
gcloud alloydb instances update INSTANCE_ID \
--database-flags google_ml_integration.enable_ai_function_acceleration=on \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDSostituisci quanto segue:
INSTANCE_ID: l'ID dell'istanza che vuoi aggiornare.REGION_ID: l'ID della regione in cui si trova il cluster. Per ulteriori informazioni, consulta Regioni supportate.CLUSTER_ID: l'ID del cluster.PROJECT_ID: l'ID del progetto.
Per ulteriori informazioni su come impostare un flag a livello di istanza, consulta Configurare i flag di database.
Verificare l'accelerazione della funzione AI
Per verificare che l'accelerazione della funzione AI sia abilitata, puoi utilizzare l'istruzione EXPLAIN per analizzare la query.
Verificare l'accelerazione della funzione AI per le query ai.if
L'esempio seguente mostra come abilitare l'accelerazione della funzione AI per la sessione corrente ed eseguire una query utilizzando la funzione ai.if:
SET google_ml_integration.enable_ai_function_acceleration = on;
EXPLAIN (COSTS OFF) SELECT r.name
FROM restaurant_reviews r
WHERE ai.if('Is the following a positive review? Review: '||r.review) AND r.city = 'Los Angeles'
GROUP BY r.name
HAVING count(*) > 20
ORDER BY r.name;
Quando utilizzi l'istruzione EXPLAIN per analizzare la query, il piano di query mostra un nodo AI Function Apply:
QUERY PLAN
----------------------------------------------------------------------------------------
GroupAggregate
Group Key: name
Filter: (count(*) > 20)
-> Sort
Sort Key: name
-> AI Function Apply
Filter: ai.if((('Is the following a positive review? Review: '::text || review)), NULL::character varying)
-> Index Scan using idx_restaurant_reviews_city on restaurant_reviews r
Index Cond: ((city)::text = 'Los Angeles'::text)
Verificare l'accelerazione della funzione AI per le query ai.rank
L'esempio seguente mostra come abilitare l'accelerazione della funzione AI per la sessione corrente ed eseguire una query utilizzando la funzione ai.rank:
SET google_ml_integration.enable_ai_function_acceleration = on;
EXPLAIN (COSTS OFF) SELECT r.name, r.review
FROM restaurant_reviews r
WHERE r.city = 'Los Angeles'
ORDER BY ai.rank('Rank these reviews based on how much they emphasize high-quality ingredients. Review: ' || r.review) DESC
LIMIT 50;
Quando utilizzi l'istruzione EXPLAIN per analizzare la query, il piano di query mostra un nodo AI Function Apply:
QUERY PLAN
----------------------------------------------------------------------------------------
Limit
-> Sort
Sort Key: (ai.rank(('Rank these reviews based on how much they emphasize high-quality ingredients. Review: ' || r.review'), NULL)) DESC
-> AI Function Apply
-> Bitmap Heap Scan on restaurant_reviews r
Recheck Cond: (city = 'Los Angeles')
-> Bitmap Index Scan on idx_restaurant_reviews_city
Index Cond: (city = 'Los Angeles')
Il nodo AIFunctionApply nel piano di query indica che la query ha utilizzato l'accelerazione della funzione AI. Se questo nodo non è presente, la query ha utilizzato l'esecuzione PostgreSQL standard.
Limitazioni
- Sono supportati solo gli argomenti di base delle funzioni. Per
ai.ifeai.rank, l'argomentopromptdeve essere un riferimento a una colonna o un valore letterale stringa concatenato con un riferimento a una colonna. Tutti gli altri argomenti devono essere costanti semplici. Di seguito sono riportati alcuni esempi di argomentipromptsupportati:ai.if(r.review)ai.if('Is this true? : ' || r.review)ai.rank(r.review)ai.rank('Rate this review: ' || r.review)
- Sono supportate solo le query
SELECTconai.ifnelle clausoleWHEREoai.ranknelle clausoleORDER BY. - È supportata una sola funzione AI per scansione di tabella.
- Sono supportati solo i modelli Gemini predefiniti. Per ulteriori informazioni, consulta Modelli Gemini. Per utilizzare un modello diverso, puoi impostare il flag
google_ml_integration.default_llm_modelsull'ID del modello che vuoi utilizzare. - La funzionalità è disponibile solo nelle regioni che supportano il modello
gemini-2.5-flash-liteo le regioni per il modello LLM che hai impostato utilizzando il flaggoogle_ml_integration.default_llm_model. Per ulteriori informazioni, consulta Regioni supportate.
Passaggi successivi
- Esegui query SQL intelligenti utilizzando le funzioni AI.
- Accelera le query AI utilizzando le funzioni ottimizzate.
- Esegui il filtraggio utilizzando le funzioni basate su array.