Skip to content

Latest commit

 

History

History
96 lines (73 loc) · 3.76 KB

sp-query-store-unforce-plan-transact-sql.md

File metadata and controls

96 lines (73 loc) · 3.76 KB
title description author ms.author ms.reviewer ms.date ms.service ms.subservice ms.topic f1_keywords helpviewer_keywords dev_langs monikerRange
sp_query_store_unforce_plan (Transact-SQL)
Enables unforcing a previously forced plan for a particular query in the Query Store.
markingmyname
maghan
randolphwest
08/21/2024
sql
system-objects
reference
SP_QUERY_STORE_UNFORCE_PLAN_TSQL
SP_QUERY_STORE_UNFORCE_PLAN
SYS.SP_QUERY_STORE_UNFORCE_PLAN
SYS.SP_QUERY_STORE_UNFORCE_PLAN_TSQL
sys.sp_query_store_unforce_plan
sp_query_store_unforce_plan
TSQL
=azuresqldb-current || >=sql-server-2016 || >=sql-server-linux-2017 || =azuresqldb-mi-current

sp_query_store_unforce_plan (Transact-SQL)

[!INCLUDE sqlserver2016-asdb-asdbmi]

Enables unforcing a previously forced plan for a particular query in the Query Store.

:::image type="icon" source="../../includes/media/topic-link-icon.svg" border="false"::: Transact-SQL syntax conventions

Syntax

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

Arguments

[ @query_id = ] query_id

The ID of the query. @query_id is bigint, with no default.

[ @plan_id = ] plan_id

The ID of the query plan that will no longer be enforced. @plan_id is bigint, with no default.

[ @force_plan_scope = ] 'replica_group_id'

You can force and unforce plans on a secondary replica when Query Store for secondary replicas is enabled. Execute sp_query_store_force_plan and sp_query_store_unforce_plan on the secondary replica. The optional @force_plan_scope argument defaults only to the local replica, but you can optionally specify a replica_group_id referencing sys.query_store_plan_forcing_locations.

Return code values

0 (success) or 1 (failure).

Permissions

Requires the ALTER permission on the database.

Examples

The following example returns information about the queries in the Query Store.

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;

After you identify the query_id and plan_id that you want to unforce, use the following example to unforce the plan.

EXEC sp_query_store_unforce_plan 3, 3;

Related content