Monitora a configuração de atualização automática de estatísticas no banco de dados
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”
Target | Microsoft.SQLServer.2005.Database | ||
Parent Monitor | Microsoft.SQLServer.2005.Database.AutomaticConfiguration | ||
Category | ConfigurationHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2005.DBConfigurationStatus | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2005.Database.Configuration.AutoUpdateSet" Accessibility="Public" Enabled="false" Target="SQL2005Core!Microsoft.SQLServer.2005.Database" ParentMonitorID="Microsoft.SQLServer.2005.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2005.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2005.Database.Configuration.AutoUpdateSet.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.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="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</DatabaseName>
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
<ConfigValue>AutoUpdateSet</ConfigValue>
<ExpectedValue>ON</ExpectedValue>
<ExcludeOnExpress>false</ExcludeOnExpress>
<SQLSKU>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/Edition$</SQLSKU>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>