Freigeben über


sp_query_store_unforce_plan (Transact-SQL)

Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-Datenbank Azure SQL Managed Instance

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 ,
    [ @force_plan_scope = ] 'replica_group_id'
[ ; ]

Argumente

[ @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.

[ @force_plan_scope = ] 'replica_group_id'

Sie können Pläne für ein sekundäres Replikat erzwingen und aufheben, wenn Abfragespeicher für sekundäre Replikate aktiviert ist. Führen Sie das sekundäre Replikat aus sp_query_store_force_plan und sp_query_store_unforce_plan führen Sie es aus. Das optionale @force_plan_scope-Argument ist standardmäßig nur für das lokale Replikat festgelegt, Sie können aber optional eine replica_group_id angeben, die auf sys.query_store_plan_forcing_locations verweist.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Berechtigungen

Erfordert die Berechtigung ALTER für die Datenbank.

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.

EXEC sp_query_store_unforce_plan 3, 3;