Freigeben über


sp_query_store_unforce_plan (Transact-SQL)

Gilt für: SQL Server 2016 (13.x) und spätere Versionen Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Ermöglicht das Aufheben eines zuvor erzwungenen Plans für eine bestimmte Abfrage im Abfragespeicher.

Transact-SQL-Syntaxkonventionen

Syntax

sp_query_store_unforce_plan
    [ @query_id = ] query_id ,
    [ @plan_id = ] plan_id ,
    [ @replica_group_id = ] 'replica_group_id'
[ ; ]

Argumente

Wichtig

Argumente für erweiterte gespeicherte Prozeduren müssen in der spezifischen Reihenfolge eingegeben werden, wie im Abschnitt Syntax beschrieben. Wenn die Parameter außerhalb der Reihenfolge eingegeben werden, tritt eine Fehlermeldung auf.

[ @query_id = ] query_id

Die ID der Abfrage. @query_id ist großint, ohne Standard.

[ @plan_id = ] plan_id

Die ID des Abfrageplans, der nicht mehr erzwungen wird. @plan_id ist großint, ohne Standard.

[ @replica_group_id = ] 'replica_group_id'

Sie können Pläne für ein sekundäres Replikat aufheben, wenn der Abfragespeicher für lesbare Secondärdateien aktiviert ist. Führen Sie sp_query_store_force_plan und sp_query_store_unforce_plan für das primäre Replikat aus. Wenn Sie das argument @replica_group_id verwenden, wird standardmäßig das lokale Replikat verwendet, in dem der Befehl ausgeführt wird. Sie können jedoch eine replica_group_id angeben, die auf die sys.query_store_plan_forcing_locations Systemkatalogansicht verweist.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Berechtigungen

Erfordert die ALTER Berechtigung für die Datenbank.

Bemerkungen

Der Query Store für sekundäre Replikate wird ab SQL Server 2025 (17.x) und späteren Versionen sowie in Azure SQL Database unterstützt. Für vollständige Plattformunterstützung siehe Query Store für sekundäre Replikate.

Beispiele

Im folgenden Beispiel werden Informationen zu den Abfragen im Abfragespeicher zurückgegeben.

SELECT txt.query_text_id,
       txt.query_sql_text,
       pl.plan_id,
       qry.*
FROM sys.query_store_plan AS pl
     INNER JOIN sys.query_store_query AS qry
         ON pl.query_id = qry.query_id
     INNER JOIN sys.query_store_query_text AS txt
         ON qry.query_text_id = txt.query_text_id;

Nachdem Sie die query_id und plan_id identifiziert haben, die Sie aufheben möchten, verwenden Sie das folgende Beispiel, um den Plan aufzuheben.

EXECUTE sp_query_store_unforce_plan 3, 3;