Event Session을 이용한 Session Health check

   

-       Version : SQL Server 2012

   

SQL Server 2012에서는 이벤트를 사용하여 SQL Server의 세션 상태를 확인 할 수 있다.

다음 스크립트를 사용하여 이벤트 정보를 확인한다.

SET NOCOUNT ON

-- Fetch data for only SQL Server 2012 instances

   

IF (SUBSTRING(CAST(SERVERPROPERTY ('ProductVersion') AS varchar(50)),1,CHARINDEX('.',CAST(SERVERPROPERTY ('ProductVersion') AS varchar(50)))-1) >= 11)

BEGIN

    -- Get UTC time difference for reporting event times local to server time

    DECLARE @UTCDateDiff int = DATEDIFF(mi,GETUTCDATE(),GETDATE());

   

    -- Store XML data retrieved in temp table

    SELECT

        TOP 1 CAST(xet.target_data AS XML) AS XMLDATA INTO #SystemHealthSessionData

    FROM sys.dm_xe_session_targets xet

        JOIN sys.dm_xe_sessions xe ON (xe.address = xet.event_session_address)

    WHERE xe.name = 'system_health' AND xet.target_name = 'ring_buffer';

   

    -- Parse XML data and provide required values in the form of a table ;

    WITH CTE_HealthSession (EventXML) AS (

    SELECT C.query('.') EventXML FROM #SystemHealthSessionData a

        CROSS APPLY a.XMLDATA.nodes('/RingBufferTarget/event') as T(C)

    )

 

    SELECT

        DATEADD(mi,@UTCDateDiff,EventXML.value('(/event/@timestamp)[1]','datetime')) as [Event Time],

        EventXML.value('(/event/data/text)[1]','varchar(255)') as Component,

        EventXML.value('(/event/data/value/system/@latchWarnings)[1]','bigint') as [Latch Warnings],

        EventXML.value('(/event/data/value/system/@isAccessViolationOccurred)[1]','bigint') as [Access Violations],

        EventXML.value('(/event/data/value/system/@nonYieldingTasksReported)[1]','bigint') as [Non Yields Reported],

        EventXML.value('(/event/data/value/system/@BadPagesDetected)[1]','bigint') as [Bad Pages Detected],

        EventXML.value('(/event/data/value/system/@BadPagesFixed)[1]','bigint') as [Bad Pages Fixed]

    FROM CTE_HealthSession

    WHERE EventXML.value('(/event/@name)[1]', 'varchar(255)') = 'sp_server_diagnostics_component_result'

        AND EventXML.value('(/event/data/text)[1]','varchar(255)') = 'SYSTEM'

ORDER BY [Event Time];

DROP TABLE #SystemHealthSessionData

END

   

   

   

   

[참고자료]

http://troubleshootingsql.com/2013/08/02/powerview-and-system-health-session-system/



강성욱 / jevida@naver.com

Microsoft SQL Server MVP

Blog : http://sqlmvp.kr

Facebook : http://facebook.com/sqlmvp




No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 604
1686 파티션 오프셋과 SQL Server에 대한 디스크 할당 단위 크기 jevida(강성욱) 2016.09.13 1737
1685 Read the End of a Large Error Log (에러로그 끝 부분 읽기) jevida(강성욱) 2016.09.13 1327
1684 데이터베이스 여유공간 확인 jevida(강성욱) 2016.09.13 1470
1683 FILE GROUP 간 데이터 이동 jevida(강성욱) 2016.09.13 1629
1682 문서화 되지 않은 sys.fn_PhysLocFormatter 함수 jevida(강성욱) 2016.09.13 992
1681 SQL Server 관리자 전용 연결(DAC) jevida(강성욱) 2016.09.13 3510
1680 파일 접근 권한으로 인한 DB복원 실패 작업 해결하기 jevida(강성욱) 2016.09.13 2033
1679 DBCC CHECKDB 실행과 히스토리 관리 jevida(강성욱) 2016.09.13 1869
1678 MDF를 이용한 데이터베이스 복원 jevida(강성욱) 2016.09.13 1193
1677 EventID 3041 Error jevida(강성욱) 2016.09.13 1460
1676 데이터베이스 미러 백업 jevida(강성욱) 2016.09.13 1346
1675 SNAPSHOT을 이용한 SQL Server 복원 jevida(강성욱) 2016.09.13 2487
1674 복사 전용 백업(COPY ONLY BACKUP) jevida(강성욱) 2016.09.13 3701
1673 SQL Server 기본 백업 폴더 변경하기 jevida(강성욱) 2016.09.13 4104
1672 sp_helpindex 의 향상된 버전 minsouk 2016.05.17 4578
1671 Spatial Index (공간 인덱스) 생성, 수정, 삭제 jevida(강성욱) 2016.01.11 9465
1670 Spatial Indexing 개요 (공간 인덱스) jevida(강성욱) 2016.01.11 7537
» Event Session을 이용한 Session Health check jevida(강성욱) 2016.01.11 6937
1668 SQL Server 2012 XML 플랜을 통한 병렬화 되지 않는 이유 살펴보기 jevida(강성욱) 2016.01.11 7522
1667 Event Session을 이용한 SQL OS Session Schedule check jevida(강성욱) 2016.01.11 7310





XE Login