Compartilhar via


sp_configure_automatic_tuning (Transact-SQL)

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';