統計の自動更新構成

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

データベースに関する統計の自動更新設定を監視します。

Knowledge Base article:

概要

このモニターは、このデータベースの [統計の自動更新] 設定を確認します。このモニターは全体的な標準要件の一部なので、指定された標準を設定が満たしていない場合に通知が生成されます。

クエリ オプティマイザーでは、適切なプランを作成するために、最新かつ正確な統計情報が必要です。多くの場合、SQL Server で統計情報を管理するのが最善です。[統計の自動生成] および [統計の自動更新] を有効にした場合、自分の責任で、統計情報を何らかの形で最新の状態に保たなければなりません。そうしないと、クエリのパフォーマンスが低下します。ほとんどのアプリケーションでは、これらのオプションは ON になっているはずです。

構成

[統計の自動更新] 設定が ON になっている場合、クエリで使用される統計が古くなっている可能性があると、クエリ オプティマイザーによって統計が更新されます。挿入、更新、削除、またはマージの各操作によってテーブルまたはインデックス付きビューのデータの分布が変わると、統計は古くなったと判断されます。クエリ オプティマイザーでは、統計が前回更新されてから発生したデータ変更の数をカウントし、その変更の数をしきい値と比較することで、統計が古くなっている可能性がないかを判断します。このしきい値は、テーブルまたはインデックス付きビューの行数に基づいて決められます。クエリ オプティマイザーによる古い統計の確認は、クエリをコンパイルする前と、キャッシュされたクエリ プランを実行する前に行われます。クエリをコンパイルする前は、クエリ オプティマイザーで、クエリ述語内の列、テーブル、およびインデックス付きビューを使用して古くなっている可能性がある統計が判断されます。キャッシュされたクエリ プランを実行する前は、データベース エンジンで、クエリ プランが最新の統計を参照しているかどうかが確認されます。AUTO_UPDATE_STATISTICS オプションは、インデックスに対して作成された統計、クエリ述語内の列に対して 1 列ずつ作成された統計、および CREATE STATISTICS ステートメントを使用して作成された統計に適用されます。また、フィルター選択された統計情報にも適用されます。

AUTO_UPDATE_STATISTICS {ON | OFF}

原因

オプションが必要な設定と一致していない場合に、警告の通知が生成されます。この設定が "OFF" に設定されていると、モニターは既定で通知を出すよう構成されます。

解決方法

この問題は、次の方法で解決できる場合があります。

また、このモニターがこのデータベースに不要であれば、次の方法を取ることもできます。

外部資料

この設定の詳細については、「 ALTER DATABASE の SET オプション (Transact-SQL)」を参照してください。

クエリのパフォーマンスを向上させるための統計の使用」も参照してください。

上書き可能なパラメーター

名前

説明

既定値

アラートの優先度

アラートの優先順位を定義します。

アラートの重要度

アラートの重大度を定義します。

警告

SQL Express のチェックを無効にする

SQL Express バージョンのチェックを有効または無効にします。

いいえ

有効

ワークフローを有効または無効にします。

いいえ

予期される値

使用可能な値のセットを表示するには、このモニターに関する説明の「構成」セクションを参照してください。

オン

アラートを生成する

ワークフローがアラートを生成するかどうかを定義します。

はい

間隔 (秒)

ワークフローを実行する定期的な実行間隔 (秒)。

43200

タイムアウト (秒)

ワークフローが終了して失敗とマークされるまでの、ワークフローの許容実行時間を指定します。

300

Element properties:

TargetMicrosoft.SQLServer.2008.Database
Parent MonitorMicrosoft.SQLServer.2008.Database.AutomaticConfiguration
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.DBConfigurationStatus
RemotableTrue
AccessibilityPublic
Alert Message
統計の自動更新構成エラー
コンピューター "{2}" 上の SQL インスタンス "{1}" で、データベース "{0}" の統計の自動更新設定が最適な方法に従って設定されていません。
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.Database.Configuration.AutoUpdateSet" Accessibility="Public" Enabled="false" Target="SQL2008Core!Microsoft.SQLServer.2008.Database" ParentMonitorID="Microsoft.SQLServer.2008.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.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>