페이지 수명 예상

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

2008 DB 엔진의 페이지 수명 예상

Knowledge Base article:

요약

페이지 수명 예상은 페이지가 참조 없이 버퍼 풀에 남아 있는 시간(초)입니다. 페이지 수명 예상이 높으면 하드 드라이브로 이동하지 않고도 캐시에서 필요한 데이터를 찾을 수 있습니다.

원인

페이지 수명 예상 값이 매우 낮으면 다음과 같은 문제를 나타낼 수 있습니다.

시스템의 메모리 부족

SQL Server에 사용하도록 구성된 메모리가 너무 작음

인덱스 디자인이 잘못됨

해결 방법

I/O 시스템에서 부하 처리 방법을 확인합니다. PhysicalDisk 개체의 Avg. Disk sec/Read 및 Avg. Disk sec/Write 카운터 값이 높으면(일반적으로 10밀리초 이상), 시스템이 오버로드되었거나 쿼리 및 인덱스를 개선할 여지가 있음을 의미합니다.

SQL Server가 동시에 대량의 테이블을 작업하거나 조건별 검색 대신 전체 검색이 사용될 경우에는 버퍼풀이 발생할 수 있습니다. SQL Server:Access Methods:Full Scans/sec 카운터에서 문제를 확인합니다.

SQL Server Profiler를 사용하고 성능 범주에서 Showplan Statistics를 검색하여 전체 검색을 일으킨 응용 프로그램을 찾을 수 있습니다.

재정의 가능한 매개 변수

이름

설명

기본값

알림 우선 순위

알림 우선 순위를 정의합니다.

보통

알림 심각도

알림 심각도를 정의합니다.

오류

사용

워크플로를 사용하거나 사용하지 않도록 설정합니다.

알림 생성

워크플로가 알림을 생성하는지를 정의합니다.

간격(초)

워크플로를 실행하는 반복 시간 간격(초)입니다.

300

샘플 수

상태가 변경되기 전 측정된 값이 임계값을 위반한 횟수를 나타냅니다.

6

임계값

임계값

300

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.DBEngine.PageLifeExpectancy.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
SQL DB 2008 엔진 페이지 수명 예상이 너무 낮습니다.
"{1}" 컴퓨터에서 SQL 인스턴스 "{0}"의 페이지 수명 예상이 너무 낮습니다. 자세한 내용은 "경고 컨텍스트" 탭을 참조하십시오.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.DBEngine.PageLifeExpectancyMonitor" Accessibility="Public" Enabled="true" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.DBEngine.PageLifeExpectancy.MonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.DBEngine.PageLifeExpectancyMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL!Microsoft.SQLServer.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>