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 2022 (16.x) e versões posteriores
do Banco de Dados SQL do AzureBanco de Dados SQL
do Azure Banco de Dados SQL banco de dados SQL do
Banco de Dados SQL do Azurebanco de dados SQL no Microsoft Fabric
Altera a configuração do componente de correção automática de plano (APC) do recurso de ajuste automático. As opções de configuração se aplicam a um determinado query_id
que pode ser obtido no Repositório de Consultas.
Essas opções incluem a capacidade de permitir que a query_id
seja permitido ou ignorado para consideração do APC ou configurar o APC para aplicar uma verificação de regressão de plano estendida adicional baseada em tempo a essa consulta específica. As opções de configuração não são mutuamente exclusivas.
Convenções de sintaxe de Transact-SQL
Sintaxe
Sintaxe para SQL Server 2022 (16.x), Instância Gerenciada de SQL do Azure:
sp_configure_automatic_tuning
[ @option = ] 'FORCE_LAST_GOOD_PLAN'
, [ @type = ] 'type'
[ , [ @type_value = ] N'type_value' ]
, [ @option_value = ] { 'ON' | 'OFF' }
Sintaxe para Banco de Dados SQL do Azure, banco de dados SQL no Microsoft Fabric:
sp_configure_automatic_tuning
[ @option = ] { 'FORCE_LAST_GOOD_PLAN' | 'FORCE_LAST_GOOD_PLAN_EXTENDED_CHECK' }
, [ @type = ] 'type'
[ , [ @type_value = ] N'type_value' ]
, [ @option_value = ] { 'ON' | 'OFF' }
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.
@option [ = ] 'opção'
Especifica o nome da opção de configuração a ser chamada. @option é varchar(60), sem padrão, e pode ser um desses valores.
Valor | Descrição |
---|---|
FORCE_LAST_GOOD_PLAN |
Permite que a APC identifique regressões de escolha de plano de execução e corrija automaticamente o problema forçando o último plano válido conhecido, conforme registrado no Repositório de Consultas. Consulte O que é regressão de escolha de plano de execução? |
FORCE_LAST_GOOD_PLAN_EXTENDED_CHECK |
Aplica-se a: Banco de Dados SQL do Azure e Banco de Dados SQL somente no Microsoft Fabric. Instrui o APC a usar uma verificação adicional de regressão de plano baseada em tempo, que ocorre cinco minutos após a detecção de uma alteração de plano. Essa verificação permite que a APC evite enviesar suas verificações de regressão para consultas que são executadas rapidamente. Com essa opção, a APC leva em consideração as execuções de consulta que podem ser executadas por mais tempo ou são propensas a atingir o tempo limite devido a uma alteração de plano. |
@type [ = ] 'tipo'
O tipo de objeto ao qual a configuração se aplica.
@type é varchar(60) sem padrão. O valor possível é QUERY
.
@type_value [ = ] N'type_value'
A ID de consulta do Repositório de Consultas à qual a configuração deve ser aplicada. @type_value é sysname sem padrões.
@option_value [ = ] 'option_value'
O estado desejado da definição de configuração.
@option_value é varchar(60) sem padrões. Os possíveis valores são ON
ou OFF
. Para a opção FORCE_LAST_GOOD_PLAN
, definir o valor como OFF
faz com que o APC ignore um query_id
no Repositório de Consultas de ser monitorado pelo sistema para regressões de plano de consulta.
Valores do código de retorno
0
(sucesso) ou 1
(falha).
Verifique os valores de configuração atuais
Você também pode verificar quais opções de configuração estão definidas, exibindo a saída da exibição do catálogo sys.database_automatic_tuning_configurations . As alterações na exibição do catálogo também são gravadas no log de erros do SQL Server.
Permissões
Requer a permissão ALTER DATABASE
.
Comentários
Para o SQL Server 2022 (16.x) 4 e versões posteriores, o FORCE_LAST_GOOD_PLAN_EXTENDED_CHECK
comportamento da opção de configuração pode ser aplicado a toda a instância do SQL Server com o sinalizador de rastreamento global 12656. Todas as consultas qualificadas para captura do Repositório de Consultas têm a lógica de verificação de regressão baseada em tempo adicional aplicada.
Exemplos
R. Configurar o Ajuste Automático (opção Forçar Último Plano Válido) para ignorar uma consulta específica
O exemplo a seguir mostra como configurar o ajuste automático para ignorar uma consulta se ela estiver qualificada para a imposição automática de planos. Este exemplo usa um valor de 422
como o query_id
que foi selecionado no Repositório de Consultas.
EXECUTE sys.sp_configure_automatic_tuning 'FORCE_LAST_GOOD_PLAN', 'QUERY', 422, 'OFF';
B. Configure o Ajuste Automático (opção Forçar Último Plano Válido) para ignorar uma consulta específica usando parâmetros nomeados
Neste exemplo, podemos ver todos os query_id
resultados que fazem parte de qualquer instrução de cursor de atualização, que são forçadas pelo recurso APC.
SELECT qry.query_id,
pl.plan_forcing_type_desc,
pl.is_forced_plan,
pl.plan_id
FROM sys.query_store_plan AS pl
INNER JOIN sys.query_store_query AS qry
ON qry.query_id = pl.query_id
WHERE pl.query_plan LIKE '%StatementType="UPDATE CURSOR"%'
AND pl.is_forced_plan > 0
AND pl.plan_forcing_type = 2;
Com base nos resultados da consulta anterior, o query_id
com o valor de é uma consulta que deve ser ignorada 42
pela APC. Podemos usar a versão do parâmetro nomeado da sintaxe da sp_configure_automatic_tuning
seguinte maneira.
EXECUTE sys.sp_configure_automatic_tuning
@option = 'FORCE_LAST_GOOD_PLAN',
@type = 'QUERY',
@type_value = 42,
@option_value = 'OFF';
Verifique se a configuração foi aplicada.
SELECT *
FROM sys.database_automatic_tuning_configurations;
C. Configure o Ajuste Automático (opção Forçar Último Plano Válido) para aplicar uma verificação de regressão de plano estendida e baseada em tempo a uma consulta específica
Aplica-se a: Banco de Dados SQL do Azure, Banco de dados SQL no Microsoft Fabric:
O APC usa uma verificação de regressão de plano baseada em tempo, que ocorre cinco minutos após a detecção de uma alteração de plano. Essa verificação permite que a APC evite enviesar suas verificações de regressão para consultas que são executadas rapidamente. A APC leva em consideração as execuções de consulta que podem ser executadas por mais tempo ou são propensas a atingir o tempo limite devido a uma alteração de plano.
O exemplo a seguir mostra como configurar o ajuste automático para aplicar sua lógica de verificação estendida a uma consulta se ela estiver qualificada para a imposição automática de planos. Este exemplo está usando um valor de 442
como o query_id
que foi selecionado no Repositório de Consultas.
EXECUTE sys.sp_configure_automatic_tuning 'FORCE_LAST_GOOD_PLAN_EXTENDED_CHECK', 'QUERY', 442, 'ON';