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

Microsoft.SQLServer.2005.Database.Configuration.AutoUpdateSet (UnitMonitor)

Monitora a configuração de atualização automática de estatísticas no banco de dados

Knowledge Base article:

Resumo

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.

Configuração

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}

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 “OFF”.

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

Element properties:

TargetMicrosoft.SQLServer.2005.Database
Parent MonitorMicrosoft.SQLServer.2005.Database.AutomaticConfiguration
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2005.DBConfigurationStatus
RemotableTrue
AccessibilityPublic
Alert Message
Erro na Configuração de Atualização Automática de Estatísticas
A configuração 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.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>