DB 엔진의 페이지 예상 수명
페이지 예상 수명은 페이지가 참조 없이 버퍼 풀에 남아 있는 시간(초)입니다. 페이지 예상 수명이 높으면 하드 드라이브로 이동하지 않고도 캐시에서 필요한 데이터를 찾을 수 있습니다.
페이지 예상 수명 값이 매우 낮으면 다음과 같은 문제를 나타낼 수 있습니다.
시스템의 메모리 부족
SQL Server에 사용하도록 구성된 메모리가 너무 작음
인덱스 디자인이 잘못됨
I/O 시스템에서 부하 처리 방법을 확인합니다. PhysicalDisk 개체의 Average Disk sec/Read 및 Average Disk sec/Write 카운터 값이 높으면(일반적으로 10밀리초 이상), 시스템이 오버로드되었거나 쿼리 및 인덱스를 개선할 여지가 있음을 의미합니다.
SQL Server가 동시에 대량의 테이블을 작업하거나 조건별 검색 대신 전체 검색이 사용될 경우에는 버퍼풀이 발생할 수 있습니다. SQL Server:Access Methods:Full Scans per Second 카운터에서 문제를 확인합니다.
SQL Server Profiler를 사용하고 성능 범주에서 Showplan Statistics를 검색하여 전체 검색을 일으킨 응용 프로그램을 찾을 수 있습니다.
이름 | 설명 | 기본값 |
경고 우선 순위 | 알림 우선 순위를 정의합니다. | 보통 |
경고 심각도 | 알림 심각도를 정의합니다. | 오류 |
사용 | 워크플로 사용하거나 사용하지 않도록 설정합니다. | 예 |
알림 생성 | 워크플로에서 알림을 생성하는지 여부를 정의합니다. | 예 |
간격(초) | 워크플로를 실행하는 반복 시간 간격(초)입니다. | 300 |
샘플 수 | 상태가 변경되기 전 측정된 값이 임계값을 위반한 횟수를 나타냅니다. | 6 |
동기화 시간 | 24시간 형식으로 지정된 동기화 시간입니다. 생략될 수 있습니다. |
|
임계값 | 수집된 값이 이 매개 변수와 비교됩니다. | 300 |
시간 제한(초) | 여기서 지정한 시간 동안 워크플로가 실행된 후 워크플로가 닫히고 실패로 표시됩니다. | 200 |
데이터베이스 연결 시간 제한(초) | 워크플로는 지정된 기간 동안 데이터베이스에 액세스할 수 없으면 실패하며 이벤트를 등록합니다. | 15 |
Target | Microsoft.SQLServer.Windows.DBEngine | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.Windows.MonitorType.DBEngine.PageLifeExpectancy | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.DBEngine.PageLifeExpectancy" Accessibility="Public" Enabled="false" Target="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Windows.MonitorType.DBEngine.PageLifeExpectancy" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.Monitor.DBEngine.PageLifeExpectancy.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Normal" MonitorTypeStateID="Normal" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<Threshold>300</Threshold>
<NumSamples>6</NumSamples>
<TimeoutSeconds>200</TimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<PerformanceCounterObject>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/PerformanceCounterObject$</PerformanceCounterObject>
</Configuration>
</UnitMonitor>