dmv 8

Sys.dm_os_waiting_tasks를 활용한 실행중인 병렬쿼리 확인

Sys.dm_os_waiting_tasks를 활용한 실행중인 병렬쿼리 확인 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 Sys.dm_os_waiting_tasks를 활용하여 실행중인 병렬쿼리의 정보를 확인한다. SELECT [owt].[session_id], [owt].[exec_context_id], [ot].[scheduler_id], [owt].[wait_duration_ms], [owt].[wait_type], [owt].[blocking_session_id], [owt].[resource_description], CASE [owt].[wait_type] WHEN N'CXPACKET' THEN RIGHT ([owt].[resource_de..

SOS_SCHEDURLER_YIELD 대기와 쿼리 식별

SOS_SCHEDURLER_YIELD 대기와 쿼리 식별 Version : SQL Server 2008, 2008R2, 2012 SOS_SCHEDULER_YIELD 대기 유형의 문제점 중 하나는 실제로 대기 유형이 아니다는 것이다. 이 대기 유형의 발생은 4ms 스케줄링 퀀텀에 따른 자발적인 CPU 양보로 인해 실행중인 스레드를 반환하고 실행 가능한 큐의 맨 아래로 이동하기 때문이다. 그리고 SOS_SCHEDULER_YIELD를 사용하여 대기 프로세스에 등록된다. 대기 유형에 대한 자세한 내용은 다음 포스트를 참고 한다. SOS_SCHEDULER_YIELD waits and the LOCK_HASH spinlock : http://www.sqlskills.com/blogs/paul/sos_scheduler..

sys.dm_tran_locks 를 이용한 잠금 정보 확인

sys.dm_tran_locks 를 이용한 잠금 정보 확인 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 Sys.dm_tran_locks는 현재 활성 상태인 잠금 관리자 리소스에 대한 정보를 반환 한다. 각 행은 이미 허용된 잠금 또는 허용 대기 중인 잠금에 대해 현재 활성 상태인 잠금 관리자 요청을 나타낸다. Sys.dm_tran_locks : http://msdn.microsoft.com/ko-kr/library/ms190345.aspx select * from sys.dm_tran_locks; Resource_type : 리소스 유형을 나타낸다. 리소스는 DATABASE, FILE, OBJECT, PAGE, KEY, EXTENT, RID, APPLICA..

성능분석 17탄 – SQLServer 블록킹 / 네트워크 관련 성능 카운터

성능분석 17탄 – SQLServer 블록킹 / 네트워크 관련 성능 카운터 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server 블록킹 및 네트워크 관련 성능 카운터에 대해서 알아 본다. [SQL Server Blocking] SQLServer:Locks [SQLServer:Locks]에 위치하며 카운터의 정보는 각 서버의 잠금 요청에 대한 통계를 반환한다. 잠금 관련 성능 문제가 발생 할 경우 카운터 정보를 모니터링 하여 분석해야 한다. 카운터 정보만으로는 블록이 발생하지만 어떤 원인에 의해서 차단되는지는 알 수가 없다. 따라서 DMV등을 활용하여 차단되는 원인을 함께 분석해야 한다. 다음 링크는 Adam Machanic 블로그의 블록 모니터링 관련 아티..

성능분석 16탄 – 메모리 / CPU 관련 성능 카운터

성능분석 16탄 – 메모리 / CPU 관련 성능 카운터 Version : SQL Server 2005, 2008, 2008R2, 2012 메모리 및 CPU와 관련된 성능 카운터에 대해서 알아본다. [메모리] Page life expectancy [SQLServer:Buffer Manager] – [Page life expectancy]에 위치하며 페이지가 버퍼풀에 머무르는 시간을 나타낸다. 페이지가 버퍼풀에 오래 머무를수록 디스크를 액세스하는 빈도가 낮아지며 메모리에서 데이터를 읽기 때문에 성능상 이점이 있다. Page life expectancy 계속해서 낮게 나온다면 메모리를 추가할 것을 고려해야 한다. MS백서에서는 임계값을 300(5분)으로 안내하고 있지만 이는 2006년에 권장한 값으로 각자의 ..

성능분석 15탄 – I/O 관련 성능 카운터

성능분석 15탄 – I/O 관련 성능 카운터 Version : SQL Server 2005, 2008, 2008R2, 2012 I/O와 관련된 성능 카운터에 대해서 알아본다. Page reads/sec [SQLServer:Buffer Manager] – [Page reads/sec]에 위치하며 실제 데이터베이스에서 읽은 페이지의 수를 나타낸다. 이 카운터의 성능은 디스크 IO 읽기의 중요한 지표이다. 일반적으로 데이터는 버퍼풀에 캐싱되어 있어 디스크에서는 적은 데이터만 읽어 부하를 줄인다. 이 수가 높게 나타난다면 누락된 인덱스 또는 메모리 부족일 가능성 있다. Page writes/sec [SQLServer:Buffer Manager] – [Page reads/sec]에 위치하며 실제 데이터베이스에서 ..

성능분석 14탄 – SQL Server 사용 성능 카운터

성능분석 14탄 – SQL Server 사용 성능 카운터 Version : SQL Server 2005, 2008, 2008R2, 2012 성능카운터는 SQL 서버 성능에 대한 또 다른 관점을 제공 한다. SQL Server에서 사용하는 성능카운터에 대해서 알아본다. 아래 소개한 카운터 외에도 다양한 카운터 정보를 활용 할 수 있다. Batch Requests/sec [SQLServer:SQL Statistics] – [Batch Requests/sec]에 위치하며 서버에 수신되는 SQL 일괄 처리 요청 수 이다. Transactions 모든 활성 트랜잭션의 수를 나타낸다. 트랜잭션 카운터는 [SQLServer:General Statistics], [SQLServer:Transactions] 두 군데 위..

성능분석 13탄 – 누락된 인덱스(missing index)

성능분석 13탄 – 누락된 인덱스(missing index) Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서 누락된 인덱스는 성능 문제를 일으킬 수 있다. 누락된 인덱스(missing index)는 인덱스가 생성되어 있지만 사용되지 않는 인덱스이다. SQL Server 2005 부터는 누락된 인덱스를 확인하기 위한 DMV가 제공되고 있다. 다음 DMV를 활용하여 누락된 인덱스의 정보를 확인 할 수 있다. Sys.dm_db_missing_index_details : 누락된 인덱스에 대한 상세 정보 반환 Sys.dm_db_missing_index_group_stats : 누락 된 인덱스 그룹에 대한 요약 정보 반환 Sys.dm_db_missing_in..