Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e posterior
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Habilita forçar um plano específico para uma consulta específica no Repositório de Consultas.
Quando um plano for forçado para uma consulta específica, sempre que o SQL Server encontrar a consulta, ele tentará forçar o plano no Otimizador de Consulta. Se a forçagem do plano falhar, um Evento Estendido será disparado e o Otimizador de Consulta será instruído a fazer a otimização normalmente.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_query_store_force_plan
[ @query_id = ] query_id ,
[ @plan_id = ] plan_id ,
[ @disable_optimized_plan_forcing = ] disable_optimized_plan_forcing ,
[ @force_plan_scope = ] 'replica_group_id'
[ ; ]
Argumentos
Importante
Os argumentos para procedimentos armazenados estendidos devem ser inseridos na ordem específica, conforme descrito na seção sintaxe. Se os parâmetros forem inseridos fora de ordem, ocorrerá uma mensagem de erro.
@query_id [ = ] query_id
A ID da consulta. @query_id é bigint, sem padrão.
@plan_id [ = ] plan_id
A ID do plano de consulta a ser forçado. @plan_id é bigint, sem padrão.
@disable_optimized_plan_forcing [ = ] disable_optimized_plan_forcing
Indica se a forçagem de plano otimizada deve ser desabilitada.
@disable_optimized_plan_forcing é bit com um padrão de 0
.
@force_plan_scope [ = ] 'replica_group_id'
Você pode forçar planos em uma réplica secundária quando o Repositório de Consultas para secundários legíveis estiver habilitado. Execute sp_query_store_force_plan
e sp_query_store_unforce_plan
na réplica primária. Usar o argumento @force_plan_scope usa como padrão a réplica local em que o comando está sendo executado, mas você pode especificar um replica_group_id referenciando a exibição do catálogo do sistema sys.query_store_plan_forcing_locations.
Valores do código de retorno
0
(sucesso) ou 1
(falha).
Comentários
O plano de execução resultante forçado por esse recurso é o mesmo ou semelhante ao plano que está sendo forçado. Como o plano resultante pode não ser idêntico ao plano especificado pelo sys.sp_query_store_force_plan
, o desempenho dos planos pode variar. Em casos raros, a diferença de desempenho pode ser significativa e negativa; Nesse caso, o administrador deve remover o plano forçado.
Revise planos forçados em réplicas secundárias com sys.query_store_plan_forcing_locations.
Permissões
Requer a permissão ALTER no banco de dados.
Exemplos
O exemplo a seguir retorna informações sobre as consultas no Repositório 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;
Depois de identificar o query_id e o plan_id que você deseja forçar, use o exemplo a seguir para forçar a consulta a usar um plano.
EXECUTE sp_query_store_force_plan
@query_id = 3,
@plan_id = 3;
Use sys.query_store_plan_forcing_locations, unidos a sys.query_store_replicas, para recuperar o Repositório de Consultas para secundários legíveis.
SELECT query_plan
FROM sys.query_store_plan AS qsp
INNER JOIN sys.query_store_plan_forcing_locations AS pfl
ON pfl.query_id = qsp.query_id
INNER JOIN sys.query_store_replicas AS qsr
ON qsr.replica_group_id = qsp.replica_group_id
WHERE qsr.replica_name = 'yourSecondaryReplicaName';
Conteúdo relacionado
- sys.query_store_plan_forcing_locations (Transact-SQL)
- sys.query_store_replicas (Transact-SQL)
- sp_query_store_remove_plan (Transact-SQL)
- sp_query_store_remove_query (Transact-SQL)
- sp_query_store_unforce_plan (Transact-SQL)
- Exibições de catálogo do Repositório de Consultas (Transact-SQL)
- Monitorar o desempenho usando o Repositório de Consultas
- sp_query_store_reset_exec_stats (Transact-SQL)
- sp_query_store_flush_db (Transact-SQL)
- Melhor prática com o Repositório de Consultas