DB 空き領域比率の変化

Microsoft.SQLServer.2016.Database.DBSizePercentageChangeMonitor (UnitMonitor)

いくつかのサンプル期間にわたって、データベースの空き領域の値に大きな変化があるかどうかを監視します。注: このモニターは既定では無効になっています。必要に応じて上書きを使用し、モニターを有効にしてください。

Knowledge Base article:

概要

設定したサンプル期間の間、データベースの空き領域の値が大きく変化するかどうかをモニターします。値が急激に大きく変化する場合は、問題がある可能性を示します。

原因

異常な状態になるのは、設定された数のサンプル期間中、空き容量に大きな変化があるためです。これは次のいずれかが原因で生じている可能性があります:

パフォーマンス データを表示するには、次のリンクを使用してください。データベース パフォーマンス データ

このモニターは、ファイルグループ内の各ファイルの使用可能な領域を、各ファイルの構成に応じて集計します。

自動拡張なし

自動拡張のないファイルの場合、空き領域はファイルの初期サイズと使用済み領域の差になります。

自動拡張有効

ファイル サイズと使用済み領域の差に加えて、自動拡張が有効になっているファイルの空き領域は、最大サイズとファイル サイズの差、およびディスクの空き領域のいずれか小さい方になります。

空き領域の計算では、ファイルの拡張量がディスクの残り領域よりも大きい場合にファイルが拡張できない可能性や、最大サイズと現在のファイル サイズの差が拡張領域よりも小さい場合にファイルが拡張できない可能性についても考慮します。これらの状況では、ファイルをこれ以上拡張できないため、ディスクに残っている使用可能な空き領域は空き領域の一部に含まれません。

解決方法

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

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

名前

説明

既定値

アラートの優先度

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

アラートの重要度

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

MatchMonitorHealth

Azure 最大ファイル サイズ (MB)

Azure BLOB Storage に保存されているデータ ファイルの最大サイズ。ワークフローはこの値をファイルごとの最大記憶域容量と見なします。

1048576

重大のしきい値

このモニターは、値がこのしきい値を超えた場合、状態を重大に変更します。このしきい値と警告しきい値の間 (両端を含む) にある場合、モニターは警告状態になります。

45

有効

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

いいえ

アラートを生成する

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

はい

間隔 (秒)

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

900

サンプル数

測定値が何回しきい値に違反すると状態変更が生じるかを示します。

5

同期時刻

24 時間形式で指定した同期時刻。省略可能です。

 

タイムアウト (秒)

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

300

警告のしきい値

警告しきい値。このしきい値を超えると、モニターが少なくとも警告状態に変わります。

25

Element properties:

TargetMicrosoft.SQLServer.2016.Database
Parent MonitorMicrosoft.SQLServer.2016.Database.DBSpaceMonitor
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2016.DBPercentageChange
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2016: DB の合計空き領域の大きな変化
コンピューター {0} 上の SQL インスタンス {1} のデータベース {2} で、空き領域に大きな変化がありました。詳細については、[アラートのコンテキスト] タブを参照してください。
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.Database.DBSizePercentageChangeMonitor" Accessibility="Public" Enabled="false" Target="SQL2016Core!Microsoft.SQLServer.2016.Database" ParentMonitorID="Microsoft.SQLServer.2016.Database.DBSpaceMonitor" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.DBPercentageChange" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Database.DBSizePercentageChangeMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderThreshold1" MonitorTypeStateID="UnderThreshold1" HealthState="Success"/>
<OperationalState ID="OverThreshold1UnderThreshold2" MonitorTypeStateID="OverThreshold1UnderThreshold2" HealthState="Warning"/>
<OperationalState ID="OverThreshold2" MonitorTypeStateID="OverThreshold2" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<ConnectionString>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</SqlInstanceName>
<ObjectName>SQL Database</ObjectName>
<CounterName>DB Available Space Total (%)</CounterName>
<InstanceName/>
<DatabaseName>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</DatabaseName>
<Value>$Data/Property[@Name='DBFreeSpacePercent']$</Value>
<Threshold1>25</Threshold1>
<Threshold2>45</Threshold2>
<NumSamples>5</NumSamples>
<TimeoutSeconds>300</TimeoutSeconds>
<AzureMaxFileSizeMB>1048576</AzureMaxFileSizeMB>
</Configuration>
</UnitMonitor>