데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

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
1670 Spatial Indexing 개요 (공간 인덱스) jevida(강성욱) 2016.01.11 7515
» Event Session을 이용한 Session Health check jevida(강성욱) 2016.01.11 6911
1668 SQL Server 2012 XML 플랜을 통한 병렬화 되지 않는 이유 살펴보기 jevida(강성욱) 2016.01.11 7214
1667 Event Session을 이용한 SQL OS Session Schedule check jevida(강성욱) 2016.01.11 7294
1666 Event Session을 이용한 Memory Health check jevida(강성욱) 2016.01.11 6953
1665 Event Session을 이용한 CPU Health check jevida(강성욱) 2016.01.11 8174
1664 DMV를 이용한 I/O Health check jevida(강성욱) 2016.01.11 7330
1663 CONCAT 함수 (문자열 연결하기)와 주의 사항 jevida(강성욱) 2016.01.11 27844
1662 SQL Server 2012 Columnstore Index jevida(강성욱) 2016.01.11 7489
1661 SQL Server 2012 File Stream / Table 관련 DMV jevida(강성욱) 2016.01.11 4849
1660 SQL Server2012 DMV – 메모리 덤프, 서비스, 구성 확인 jevida(강성욱) 2016.01.11 4702
1659 SQL Server2012 향상된 디버깅 기능 jevida(강성욱) 2016.01.11 4380
1658 SQL Server2012 매개 변수 구성 jevida(강성욱) 2016.01.11 3490
1657 SQL Server2012 도움말 설치 jevida(강성욱) 2016.01.11 3451
1656 SQL Server2012 Checkpoint 제어 jevida(강성욱) 2016.01.11 5260
1655 SSIS 패지키의 메타데이터 유효성 검사 중지하기 jevida(강성욱) 2016.01.11 2929
1654 SSIS 로그 보관기간 설정 (CleanUp 기간 설정) jevida(강성욱) 2016.01.11 4276
1653 SSIS 패키지 보호 레벨 jevida(강성욱) 2016.01.11 3867
1652 DATABASE의 TABLE 및 COLUMN COMMENT 출력 joe 2015.09.10 7601
1651 백업 히스토리 모니터링 jevida(강성욱) 2015.03.31 11611





XE Login