統計の非同期的自動更新構成

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

データベースの統計の非同期的自動更新の設定を監視します。

Knowledge Base article:

概要

このモニターは、このデータベースの [統計の非同期的自動更新] 設定を確認します。Since this monitor is a part of an overall standards requirement, an alert would be generated if the setting does not meet the specified standard.

構成

[統計の非同期的自動更新] 設定を ON にすると、AUTO UPDATE STATISTICS オプションの統計の更新が非同期になります。クエリ オプティマイザーは、統計の更新が完了するのを待たずにクエリをコンパイルします。AUTO_UPDATE_STATISTICS が ON に設定されていなければ、このオプションを ON に設定しても、効果はありません。

AUTO_UPDATE_STATISTICS_ASYNC {ON | OFF}

原因

A warning alert will be raised if the option does not match the required setting.Out of the box, the monitor is configured to alert when this setting is set to “ON”.

このデータベース オプションが既定で OFF になっているのは、既存のアプリケーションとの後方互換性のためです。クエリは統計情報の更新を待機またはブロックしないため、クエリが古い統計情報に対してコンパイルおよび実行する場合に、パフォーマンスの一時的な変更が可能です。統計情報の更新が完了すると、次回の実行の前に、更新された統計情報に対して同じクエリが再コンパイルされます。ただし、古い統計情報に対してコンパイルされているために、統計情報の更新中、クエリに瞬間的なパフォーマンスの問題が発生する可能性があります。

ほとんどのアプリケーションでは、ブロックと待機を全体的に最小化する ASYNC 更新がおそらく最良の選択肢です。ON に設定することを検討してください。お使いのアプリケーションでうまく動作する場合は、このユニット モニターを無効にしてください。

解決方法

This issue may be resolved by:

Alternatively, if this monitor is not of concern for this database:

外部資料

See more detailed information about this setting: ALTER DATABASE SET Options (Transact-SQL)

See also “ Using Statistics to Improvement Query Performance

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
統計の非同期的自動更新構成エラー
コンピューター "{2}" 上の SQL インスタンス "{1}" で、データベース "{0}" の統計の非同期的自動更新設定が最適な方法に従って設定されていません。
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2005.Database.Configuration.AutoUpdateStatAsync" 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.AutoUpdateStatAsync.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>AutoUpdateAsyncStat</ConfigValue>
<ExpectedValue>OFF</ExpectedValue>
<ExcludeOnExpress>false</ExcludeOnExpress>
<SQLSKU>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/Edition$</SQLSKU>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>