Configuração Assíncrona da Atualização Automática de Estatísticas

Microsoft.SQLServer.2016.Database.Configuration.AutoUpdateStatAsync (UnitMonitor)

Monitora a configuração Assíncrona da Atualização Automática de Estatísticas no banco de dados. Observação: Esse monitor está desabilitado por padrão. Use substituições para permitir, quando necessário.

Knowledge Base article:

Resumo

Este monitor verifica a configuração Atualização Automática de Estatísticas de Modo Assíncrono deste banco de dados. Como este monitor faz parte de um requisito geral de padrões, um alerta será gerado se a configuração não atender ao padrão especificado.

Configuração

Quando a configuração Atualização Automática de Estatísticas estiver definida como ON, as atualizações de estatísticas da opção AUTO_UPDATE_STATISTICS serão assíncronas. O otimizador de consulta não aguarda a conclusão das atualizações de estatísticas para compilar consultas. Definir essa opção como ON não tem nenhum efeito, a menos que AUTO_UPDATE_STATISTICS seja definida como ON.

AUTO_UPDATE_STATISTICS_ASYNC {ON | OFF}

Causas

Um alerta de aviso será gerado se a opção não corresponder à configuração necessária. O monitor é predefinido para alertar quando essa configuração está definida como “ON”.

Essa opção de banco de dados está OFF por padrão por questões de compatibilidade com versões anteriores de aplicativos existentes. Como as consultas não aguardam nem bloqueiam atualizações de estatísticas, talvez ocorram mudanças temporárias no desempenho em caso de compilação e execução de uma consulta com estatísticas antigas. Ao término da atualização das estatísticas, a mesma consulta será recompilada com base nas estatísticas atualizadas antes da próxima execução. Durante a atualização das estatísticas, talvez a consulta encontre problemas de desempenho temporários, pois ela foi compilada com base em estatísticas antigas.

A atualização ASYNC provavelmente é a melhor opção para a maioria dos aplicativos, pois ela minimiza os bloqueios e as esperas em geral. Tente defini-la como ON; se isso funcionar para o seu aplicativo, desabilite o monitor dessa unidade.

Resoluções

Este problema pode ser resolvido da seguinte maneira:

Como alternativa, se este monitor não for um problema para o banco de dados:

Externo

Consulte informações mais detalhadas sobre esta configuração: Opções ALTER DATABASE SET (Transact-SQL)

Consulte também “ Usando estatísticas para melhorar o desempenho da consulta

Parâmetros Substituíveis

Nome

Descrição

Valor padrão

Prioridade do Alerta

Define a Prioridade do Alerta.

Normal

Severidade do Alerta

Define a Severidade do Alerta.

Aviso

Desabilitar a Verificação para o SQL Express

Ele só pode ser definido como 'true' ou 'false'. O fluxo de trabalho não considerará a edição do SQL Server Express se estiver definida como 'true'.

Não

Habilitado

Habilita ou desabilita o fluxo de trabalho.

Não

Valor Esperado

O valor esperado da configuração de banco de dados. Para exibir o conjunto de valores aplicáveis, consulte a seção "Configuração" do artigo da base de dados de conhecimento deste monitor.

DESATIVADO

Gerar Alertas

Define se o fluxo de trabalho gera um Alerta.

Sim

Intervalo (segundos)

O intervalo de tempo recorrente em segundos no qual executa-se o fluxo de trabalho.

43.200

Tempo Limite (segundos)

Especifica o tempo que o fluxo de trabalho pode funcionar antes de ser fechado e marcado como com falha.

300

Element properties:

TargetMicrosoft.SQLServer.2016.Database
Parent MonitorMicrosoft.SQLServer.2016.Database.AutomaticConfiguration
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2016.DBConfigurationStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2016: Erro na Configuração Assíncrona da Atualização Automática de Estatísticas
A configuração Assíncrona de Atualização Automática de Estatísticas no banco de dados "{0}" na instância SQL "{1}" do computador "{2}" não está definida de acordo com a prática recomendada.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.Database.Configuration.AutoUpdateStatAsync" Accessibility="Public" Enabled="false" Target="SQL2016Core!Microsoft.SQLServer.2016.Database" ParentMonitorID="Microsoft.SQLServer.2016.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Database.Configuration.AutoUpdateStatAsync.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ConfigurationValueOK" MonitorTypeStateID="ConfigurationValueOK" HealthState="Success"/>
<OperationalState ID="ConfigurationValueNotOK" MonitorTypeStateID="ConfigurationValueNotOK" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<ConnectionString>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</DatabaseName>
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
<ConfigValue>AutoUpdateAsyncStat</ConfigValue>
<ExpectedValue>OFF</ExpectedValue>
<ExcludeOnExpress>false</ExcludeOnExpress>
<SQLSKU>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/Edition$</SQLSKU>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>