Sdílet prostřednictvím


sp_query_store_unforce_plan (Transact-SQL)

platí pro: SQL Server 2016 (13.x) a novější azure SQL Databaseazure SQL Managed Instance

Umožňuje zrušit vynucení dříve vynuceného plánu pro konkrétní dotaz v úložišti dotazů.

Transact-SQL konvence syntaxe

Syntax

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

Argumenty

Důležitý

Argumenty rozšířených uložených procedur musí být zadány v určitém pořadí, jak je popsáno v části Syntaxe. Pokud jsou parametry zadány mimo pořadí, dojde k chybové zprávě.

[ @query_id = ] query_id

ID dotazu. @query_id je bigint, bez výchozího nastavení.

[ @plan_id = ] plan_id

ID plánu dotazu, který se už nebude vynucovat. @plan_id je bigint, bez výchozího nastavení.

[ @force_plan_scope = ] 'replica_group_id'

Pokud je úložiště dotazů pro sekundární repliky povolené, můžete plány na sekundární replik u zrušit. Na primární replice spusťte sp_query_store_force_plan a sp_query_store_unforce_plan. Pomocí argumentu @force_plan_scope se ve výchozím nastavení použije místní replika, ve které se příkaz spouští, ale můžete zadat replica_group_id odkazující na zobrazení katalogu systému sys.query_store_plan_forcing_locations.

Návratové hodnoty kódu

0 (úspěch) nebo 1 (selhání).

Dovolení

Vyžaduje oprávnění ALTER pro databázi.

Příklady

Následující příklad vrátí informace o dotazech v úložišti dotazů.

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 identifikaci query_id a plan_id, které chcete vynutit, použijte následující příklad k vynucovat plán.

EXEC sp_query_store_unforce_plan 3, 3;