Leistung von Abfragen mit KI-Funktionen steigern

Mit der Beschleunigung von KI-Funktionen können Sie die Leistung optimieren, wenn Sie Abfragen ausführen, die KI-Funktionen verwenden. Sie bietet die gleiche oder eine bessere Leistung als arraybasierte Funktionen, ohne dass Sie komplexe Abfragen schreiben müssen. Weitere Informationen zu KI Funktionen finden Sie unter Übersicht über KI-Funktionen.

Die Beschleunigung von KI-Funktionen unterstützt die folgenden KI-Funktionen:

  • ai.if: Die Beschleunigung gilt nur für SELECT-Abfragen, bei denen sich die Funktion in der WHERE-Klausel befindet. Sie unterstützt eine einzelne ai.if-Funktion pro Scan und funktioniert mit sequenziellen, Index- und Bitmap-Heap-Scans. Wenn eine Abfrage mehrere Tabellenscans enthält, z. B. für verschiedene Tabellen, Beziehungen oder allgemeine Tabellenausdrücke (Common Table Expressions, CTEs), können Sie eine ai.if-Funktion pro Scan beschleunigen.
  • ai.rank: Die Beschleunigung gilt nur für SELECT-Abfragen, bei denen sich die Funktion in der ORDER BY-Klausel befindet. Sie unterstützt eine einzelne ai.rank-Funktion pro Scan. Wenn eine Abfrage mehrere Tabellenscans enthält, z. B. für verschiedene Tabellen, Beziehungen oder CTEs, können Sie eine ai.rank-Funktion pro Scan beschleunigen.

Beschleunigung von KI-Funktionen aktivieren

Wenn Sie die Beschleunigung von KI-Funktionen aktivieren möchten, legen Sie das google_ml_integration.enable_ai_function_acceleration Flag auf on fest. Dieses Flag ist standardmäßig deaktiviert und steuert, ob der Abfrage-Executor berechtigte KI-Vorgänge zur Beschleunigung an den Knoten „KI-Funktion anwenden“ auslagern darf. Wenn das Flag nicht festgelegt oder auf off gesetzt ist, werden alle Abfragevorgänge vom Standard-PostgreSQL-Executor ausgeführt.

Sie können dieses Flag entweder auf Sitzungs- oder Instanzebene konfigurieren.

Verwenden Sie den Befehl gcloud alloydb instances update, um die Beschleunigung von KI-Funktionen auf Instanzebene zu aktivieren:

gcloud alloydb instances update INSTANCE_ID \
  --database-flags google_ml_integration.enable_ai_function_acceleration=on \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID

Ersetzen Sie Folgendes:

  • INSTANCE_ID: Die ID der Instanz, die Sie aktualisieren möchten.
  • REGION_ID: Die ID der Region, in der sich der Cluster befindet. Weitere Informationen finden Sie unter Unterstützte Regionen.
  • CLUSTER_ID: Die ID des Clusters.
  • PROJECT_ID: Die ID des Projekts.

Weitere Informationen zum Festlegen eines Flags auf Instanzebene finden Sie unter Datenbank-Flags konfigurieren.

Beschleunigung von KI-Funktionen überprüfen

Sie können die Anweisung EXPLAIN verwenden, um Ihre Abfrage zu analysieren und zu prüfen, ob die Beschleunigung von KI-Funktionen aktiviert ist.

Beschleunigung von KI-Funktionen für ai.if-Abfragen überprüfen

Im folgenden Beispiel wird gezeigt, wie Sie die Beschleunigung von KI-Funktionen für die aktuelle Sitzung aktivieren und eine Abfrage mit der Funktion ai.if ausführen:

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;

Wenn Sie die Anweisung EXPLAIN verwenden, um Ihre Abfrage zu analysieren, enthält der Abfrageplan einen Knoten 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)

Beschleunigung von KI-Funktionen für ai.rank-Abfragen überprüfen

Im folgenden Beispiel wird gezeigt, wie Sie die Beschleunigung von KI-Funktionen für die aktuelle Sitzung aktivieren und eine Abfrage mit der Funktion ai.rank ausführen:

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;

Wenn Sie die Anweisung EXPLAIN verwenden, um Ihre Abfrage zu analysieren, enthält der Abfrageplan einen Knoten 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')

Der Knoten AIFunctionApply im Abfrageplan gibt an, dass die Abfrage die Beschleunigung von KI-Funktionen verwendet hat. Wenn dieser Knoten nicht vorhanden ist, wurde die Abfrage mit der Standardausführung von PostgreSQL ausgeführt.

Beschränkungen

  • Es werden nur grundlegende Argumente für die Funktionen unterstützt. Für ai.if und ai.rank muss das Argument prompt entweder ein Spaltenverweis oder ein Stringliteral sein, das mit einem Spaltenverweis verkettet ist. Alle anderen Argumente müssen einfache Konstanten sein. Beispiele für unterstützte prompt-Argumente:
    • ai.if(r.review)
    • ai.if('Is this true? : ' || r.review)
    • ai.rank(r.review)
    • ai.rank('Rate this review: ' || r.review)
  • Es werden nur SELECT-Abfragen mit ai.if in WHERE-Klauseln oder ai.rank in ORDER BY-Klauseln unterstützt.
  • Pro Tabellenscan wird nur eine KI-Funktion unterstützt.
  • Es werden nur die Standardmodelle von Gemini unterstützt. Weitere Informationen finden Sie unter Gemini-Modelle. Wenn Sie ein anderes Modell verwenden möchten, können Sie das Flag google_ml_integration.default_llm_model auf die ID des gewünschten Modells festlegen.
  • Die Funktion ist nur in Regionen verfügbar, die das Modell gemini-2.5-flash-lite unterstützen, oder in den Regionen für das LLM-Modell, das Sie mit dem Flag google_ml_integration.default_llm_model festgelegt haben. Weitere Informationen finden Sie unter Unterstützte Regionen.

Nächste Schritte