ページの予測保持期間

Microsoft.SQLServer.2016.DBEngine.PageLifeExpectancyMonitor (UnitMonitor)

2016 DB エンジンのページの予測保持期間 (秒)

Knowledge Base article:

概要

ページ予測保持期間は、ページが参照されないままバッファー プールに存在する秒数です。ページ予測保持期間が長い場合、必要なデータはハード ドライブに移動せずにキャッシュにあります。

原因

ページの予測保持期間の値が著しく低い場合は、次の状況を示している可能性があります。

システムのメモリが少なすぎる

SQL Server 用に構成されたメモリが少なすぎる

インデックスの設計が適切でない

解決方法

I/O システムで負荷の処理状態を確認してください。PhysicalDisk オブジェクトの 1 秒間のディスク読み取りの平均および 1 秒間のディスク書き込みの平均のカウンター値が高い場合 (通常は 10 ミリ秒を超える場合) は、システムがオーバーロードしているか、クエリやインデックスに改善の余地があることを意味します。

SQL Server で大量のテーブルを同時に使用しているか、抽出条件による検索の代わりにフル スキャンが使用されているため、バッファー プールがオーバーロードになっている可能性があります。SQL Server のアクセス方法のフル スキャン/秒カウンターで問題を確認します。

SQL Server Profiler を使用し、パフォーマンス カテゴリの Showplan Statistics を参照すると、フル スキャンを引き起こしているアプリケーションを特定できることがあります。

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

名前

説明

既定値

アラートの優先度

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

アラートの重要度

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

エラー

有効

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

はい

アラートを生成する

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

はい

間隔 (秒)

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

300

サンプル数

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

6

しきい値

収集された値はこのパラメーターと比較されます。

300

Element properties:

TargetMicrosoft.SQLServer.2016.DBEngine
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2016.DBEngine.PageLifeExpectancy.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2016: ページの予測保持期間が短すぎます
コンピューター "{1}" 上の SQL インスタンス "{0}" のページの予測保持期間が短すぎます。詳細については、[アラートのコンテキスト] タブを参照してください。
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.DBEngine.PageLifeExpectancyMonitor" Accessibility="Public" Enabled="true" Target="SQL2016Core!Microsoft.SQLServer.2016.DBEngine" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.DBEngine.PageLifeExpectancy.MonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.DBEngine.PageLifeExpectancyMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Normal" MonitorTypeStateID="Normal" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>300</IntervalSeconds>
<Threshold>300</Threshold>
<NumSamples>6</NumSamples>
</Configuration>
</UnitMonitor>