Monitora a configuração Atualizar Estatísticas Automaticamente no banco de dados. Observação: Esse monitor está desabilitado por padrão. Use substituições para permitir, quando necessário.
Este monitor verifica a configuração Atualização Automática de Estatísticas 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.
O otimizador de consulta precisa de estatísticas atualizadas e exatas para gerar bons planos. Na maioria dos casos, convém permitir que o SQL Server mantenha a estatística. Se você ativar "Criação Automática de Estatísticas" e "Atualização Automática de Estatísticas" , caberá a você manter a estatística atualizada. Se isso não for feito, a consulta terá baixo desempenho. A maioria dos aplicativos deve ter essas opções definidas como ON.
Quando a configuração Atualização Automática de Estatísticas estiver definida como ON, o otimizador de consulta atualizará as estatísticas quando elas forem usadas por uma consulta e quando estiverem possivelmente desatualizadas. As estatísticas ficam desatualizadas depois que operações de inserção, atualização, exclusão ou mesclagem alteram a distribuição de dados na tabela ou na exibição indexada. O otimizador de consulta determina quando estatísticas podem estar desatualizadas contando o número de modificações de dados desde a última atualização das estatísticas e comparando o número de modificações a um limite. O limite se baseia no número de linhas na tabela ou na exibição indexada. O otimizador de consulta procura estatísticas desatualizadas antes de compilar uma consulta e antes de executar um plano de consulta em cache. Antes de compilar uma consulta, o otimizador usa as colunas, tabelas e exibições indexadas no predicado de consulta para determinar quais estatísticas podem estar desatualizadas. Antes de executar um plano de consulta armazenado em cache, o Mecanismo de Banco de Dados verifica se o plano de consulta faz referência a estatísticas atualizadas. A opção AUTO_UPDATE_STATISTICS se aplica a estatísticas criadas para índices, colunas únicas em predicados de consulta, além de estatísticas criadas por meio da instrução CREATE STATISTICS. Essa opção também se aplica a estatísticas filtradas.
AUTO_UPDATE_STATISTICS {ON | OFF}
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 “OFF”.
Este problema pode ser resolvido da seguinte maneira:
Alterando a configuração deste banco de dados para que corresponda ao valor esperado.
Substituindo o valor esperado deste monitor de unidade para este ou todos os bancos de dados.
Como alternativa, se este monitor não for um problema para o banco de dados:
Desabilitando o monitor através de substituições para este ou todos os bancos de dados.
Desabilitando o monitor de configuração agregada de nível superior através de substituições para este ou todos os bancos de dados.
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”
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. | ATIVADO |
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 |
Target | Microsoft.SQLServer.2016.Database | ||
Parent Monitor | Microsoft.SQLServer.2016.Database.AutomaticConfiguration | ||
Category | ConfigurationHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2016.DBConfigurationStatus | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2016.Database.Configuration.AutoUpdateSet" 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.AutoUpdateSet.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>AutoUpdateSet</ConfigValue>
<ExpectedValue>ON</ExpectedValue>
<ExcludeOnExpress>false</ExcludeOnExpress>
<SQLSKU>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/Edition$</SQLSKU>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>