Поделиться через


sp_query_store_unforce_plan (Transact-SQL)

Относится к: SQL Server 2016 (13.x) и более поздние версии Azure SQL DatabaseAzure SQL Managed InstanceSQL Database в Microsoft Fabric

Включает отмену ранее принудительного плана для определенного запроса в хранилище запросов.

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

Важный

Аргументы для расширенных хранимых процедур необходимо ввести в определенном порядке, как описано в разделе Синтаксис. Если параметры введены вне порядка, возникает сообщение об ошибке.

[ @query_id = ] query_id

Идентификатор запроса. @query_id является bigint, без значения по умолчанию.

[ @plan_id = ] plan_id

Идентификатор плана запроса, который больше не будет применяться. @plan_id является bigint, без значения по умолчанию.

[ @replica_group_id = ] 'replica_group_id'

При включении хранилища запросов для доступных для чтения вторичных реплик можно отменить планы на вторичной реплике. Выполните sp_query_store_force_plan и sp_query_store_unforce_plan на первичной реплике. Использование аргумента @replica_group_id по умолчанию использует локальную реплику, в которой выполняется команда, но можно указать replica_group_id , ссылающуюся на представление системного каталога sys.query_store_plan_forcing_locations .

Значения кода возврата

0 (успешно) или 1 (сбой).

Разрешения

Требуется ALTER разрешение на базу данных.

Замечания

Хранилище запросов для вторичных реплик поддерживается начиная с SQL Server 2025 (17.x) и более поздних версий, а также в Azure SQL Database. Для полной поддержки платформы см. 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;

После идентификации query_id и plan_id, которые вы хотите отменить, используйте следующий пример для отмены плана.

EXECUTE sp_query_store_unforce_plan 3, 3;