自動終了構成

Microsoft.SQLServer.2016.Database.Configuration.AutoClose (UnitMonitor)

データベースの自動終了設定を監視します。注: このモニターは既定では無効になっています。必要に応じて上書きを使用し、モニターを有効にしてください。

Knowledge Base article:

概要

このモニターは、このデータベースの [自動終了] 設定を確認します。このモニターは全体的な標準の要件の一部であるため、設定が指定の標準を満たさないとアラートが生成されます。

AUTO_CLOSE オプションを使用すると、データベース ファイルを通常のファイルとして管理できるため、デスクトップ データベースには便利なオプションです。普通のファイルと同じように、移動、コピーによるバックアップ作成、他のユーザーへの電子メール送信が可能です。データベースを AUTOCLOSE = ON に設定すると、データベースの自動シャットダウンを開始する操作によって、SQL Server のインスタンスのプラン キャッシュが消去されます。プラン キャッシュが消去されると、後続のすべての実行プランが再コンパイルされ、場合によっては、クエリ パフォーマンスが一時的に急激に低下します。

データベースをミラー化するには、AUTO_CLOSE を OFF に設定する必要があります。

自動終了は、アプリケーションの使用パターンによって、データベースが比較的長時間閉じたままになっている場合にのみ効果があります。シングル ユーザー アプリケーションやマルチテナント データベースをホスティングする一部の状況で、AUTO_CLOSE ON を使用するメリットが得られる場合があります。それ以外の使用は、アプリケーションの動作および使用パターンを熟知していない限り、お勧めしません。

  • BOL からの設計/実装上の注意

  • データベースが起動されていない場合、メタデータから値を取得するのではなく、Microsoft SQL Server が直接データベースにアクセスして取得したプロパティは、NULL を返します。つまり、データベースで AUTO_CLOSE が ON に設定されているなど、データベースがオフラインの場合に NULL を返します。

構成

[自動終了] 設定が ON であれば、データベースが正常にシャットダウンされ、最後のユーザーが終了した後、データベースのリソースが解放されます。

AUTO_CLOSE {ON | OFF}

原因

[自動終了] オプションが必要な設定と一致していない場合に、警告のアラートが生成されます。既定では、モニターは、この設定が "ON" に設定されているときにアラートを生成するよう設定されています。

解決方法

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

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

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

名前

説明

既定値

アラートの優先度

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

アラートの重要度

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

警告

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

この値は、'true' または 'false' にのみ設定できます。'true' に設定されていると、ワークフローは SQL Server Express エディションを考慮しません。

はい

有効

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

いいえ

予期される値

データベース構成設定の予期される値。適用される値のセットを表示するには、このモニターのサポート技術情報の記事の「構成」セクションを参照してください。

オフ

アラートを生成する

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

はい

間隔 (秒)

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

43200

タイムアウト (秒)

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

300

Element properties:

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

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.Database.Configuration.AutoClose" 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.AutoClose.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>AutoClose</ConfigValue>
<ExpectedValue>OFF</ExpectedValue>
<ExcludeOnExpress>true</ExcludeOnExpress>
<SQLSKU>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/Edition$</SQLSKU>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>