Compartir a través de


sp_query_store_unforce_plan (Transact-SQL)

Aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Habilita la aplicación de un plan forzado previamente para una consulta determinada en el Almacén de consultas.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

Importante

Los argumentos para los procedimientos almacenados extendidos deben especificarse en el orden específico, tal como se describe en la sección sintaxis de . Si los parámetros se escriben fuera de orden, se produce un mensaje de error.

[ @query_id = ] query_id

Identificador de la consulta. @query_id es bigint, sin valor predeterminado.

[ @plan_id = ] plan_id

Identificador del plan de consulta que ya no se aplicará. @plan_id es bigint, sin valor predeterminado.

[ @replica_group_id = ] 'replica_group_id'

Puede deshacer planes en una réplica secundaria cuando el Almacén de consultas para secundarias legibles esté habilitado. Ejecute sp_query_store_force_plan y sp_query_store_unforce_plan en la réplica principal. El uso del argumento @replica_group_id tiene como valor predeterminado la réplica local donde se ejecuta el comando, pero puede especificar un replica_group_id haciendo referencia a la vista de catálogo del sistema sys.query_store_plan_forcing_locations .

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Permisos

Requiere el ALTER permiso en la base de datos.

Observaciones

La tienda de consultas para réplicas secundarias está compatible a partir de SQL Server 2025 (17.x) y versiones posteriores, así como en Azure SQL Database. Para soporte completo de plataforma, consulte Tienda de consultas para réplicas secundarias.

Ejemplos

En el ejemplo siguiente se devuelve información sobre las consultas del Almacén de consultas.

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;

Después de identificar el query_id y plan_id que desea deshacer, use el ejemplo siguiente para deshacer el plan.

EXECUTE sp_query_store_unforce_plan 3, 3;