Udostępnij za pośrednictwem


sp_query_store_unforce_plan (Transact-SQL)

Dotyczy: SQL Server 2016 (13.x) i nowszych Azure SQL DatabaseAzure SQL Managed Instance

Umożliwia usunięcie poprzedniego wymuszonego planu dla określonego zapytania w magazynie zapytań.

Transact-SQL konwencje składni

Składnia

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

Argumenty

Ważny

Argumenty dla rozszerzonych procedur składowanych należy wprowadzić w określonej kolejności zgodnie z opisem w sekcji składni. Jeśli parametry są wprowadzane poza kolejnością, wystąpi komunikat o błędzie.

[ @query_id = ] query_id

Identyfikator zapytania. @query_id jest bigint, bez wartości domyślnej.

[ @plan_id = ] plan_id

Identyfikator planu zapytania, który nie będzie już wymuszany. @plan_id jest bigint, bez wartości domyślnej.

[ @force_plan_scope = ] 'replica_group_id'

W przypadku włączenia magazynu zapytań dla replik pomocniczych można usunąć plany na replikach pomocniczych. Wykonaj sp_query_store_force_plan i sp_query_store_unforce_plan w repliki podstawowej. Używając argumentu @force_plan_scope domyślnie do repliki lokalnej, w której jest wykonywane polecenie, ale można określić replica_group_id odwołującą się do widoku wykazu systemu sys.query_store_plan_forcing_locations.

Zwracanie wartości kodu

0 (powodzenie) lub 1 (niepowodzenie).

Uprawnienia

Wymaga uprawnienia ALTER w bazie danych.

Przykłady

Poniższy przykład zwraca informacje o zapytaniach w magazynie zapytań.

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;

Po zidentyfikowaniu query_id i plan_id, które chcesz wymuśić, użyj poniższego przykładu, aby wymuś plan.

EXEC sp_query_store_unforce_plan 3, 3;