Configuração de Atualização Automática de Estatísticas de Modo Assíncrono

Microsoft.SQLServer.Windows.Monitor.Database.AutoUpdateStatAsyncConfiguration (UnitMonitor)

Monitora a configuração Atualizar Estatísticas Automaticamente de Forma Assíncrona para o banco de dados. Observação: este monitor é desabilitado por padrão. Use substituições para habilitá-lo quando necessário.

Knowledge Base article:

Resumo

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

Configuração

Quando a configuração de Atualização Automática de Estatísticas de Modo Assíncrono estiver ON, as atualizações de estatísticas da opção AUTO_UPDATE_STATISTICS serão assíncronas. O otimizador de consulta não espera que as atualizações de estatísticas sejam concluídas antes de compilar as consultas. Definir essa opção como ON não terá efeito, a menos que AUTO_UPDATE_STATISTICS esteja definido 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 é configurado para alertar quando essa configuração está definida como “ON”.

Esta opção de banco de dados está OFF por padrão por motivo de compatibilidade com versões anteriores dos aplicativos existentes. Uma vez que as consultas não esperam nem bloqueiam as atualizações de estatísticas, há uma chance de alterações temporárias no desempenho se uma consulta compila e executa com estatísticas antigas. Depois da conclusão das atualizações das estatísticas, a mesma consulta poderá ser recompilada com base nas estatísticas atualizadas antes da próxima execução. No entanto, enquanto as estatísticas estiverem sendo atualizadas, a consulta poderá ter problemas momentâneos de desempenho, já que foram compiladas com base em estatísticas antigas.

A atualização ASSÍNCRONA é provavelmente a melhor opção para a maioria dos aplicativos, pois minimiza o bloqueio e a espera em geral. Considere ligá-la definindo-a como ON e, se ela funcionar para o aplicativo, desabilite este monitor de unidade.

Resoluções

Este problema pode ser resolvido da seguinte maneira:

Como alternativa, se esse monitor não for preocupante para esse 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

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.

DESLIGAR

Gera Alertas

Define se o fluxo de trabalho gera ou não um Alerta.

Sim

Intervalo (segundos)

O intervalo de tempo recorrente em segundos no qual executar o fluxo de trabalho.

43.200

Tempo de Sincronização

O tempo de sincronização especificado usando um formato de 24 horas. Pode ser omitido.

 

Tempo Limite (em segundos)

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

300

Tempo limite da conexão de banco de dados (segundos)

O fluxo de trabalho falhará e registrará um evento, se ele não conseguir acessar o banco de dados durante o período especificado.

15

Element properties:

TargetMicrosoft.SQLServer.Windows.Database
Parent MonitorMicrosoft.SQLServer.Windows.Rollup.Database.AutomaticConfiguration
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Windows.MonitorType.Database.DBConfigurationStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL no Windows: erro na configuração assíncrona de estatísticas de atualização automática
A configuração de Atualização Automática de Estatísticas de Modo Assíncrono do banco de dados "{0}" na instância SQL "{1}" no computador "{2}" não está definida de acordo com a melhor prática.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.Database.AutoUpdateStatAsyncConfiguration" Accessibility="Public" Enabled="false" Target="SqlDiscW!Microsoft.SQLServer.Windows.Database" ParentMonitorID="Microsoft.SQLServer.Windows.Rollup.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Windows.MonitorType.Database.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.Monitor.Database.AutoUpdateStatAsyncConfiguration.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ConfigurationValueOK" MonitorTypeStateID="ConfigurationValueOK" HealthState="Success"/>
<OperationalState ID="ConfigurationValueNotOK" MonitorTypeStateID="ConfigurationValueNotOK" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<ConfigName>AutoUpdateStatAsync</ConfigName>
<ExpectedValue>OFF</ExpectedValue>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>