SQL Server 2012 DMV를 이용한 통계 정보 확인
- Version : SQL Server 2008R2 SP2, 2012 SP1
통계 정보를 확인 하기 위해서는 DBCC SHOWSTATISTICS 명령어를 이용하였다. 내가 운영하는 서버가 SQL Server 2008R2 SP2 또는 SQL Server 2012 SP1 상위 버전인 경우 DMV를 통하여서도 통계 속성 정보를 확인 해 볼 수 있다.
DBCC SHOWSTATISTICS 통계 관련 아티클 : http://sqlmvp.kr/140165557766
새로운 통계 관련 DMV를 사용하기 위해서는 위에서 설명 하였듯이 SQL Server 2008R2 SP2 또는 SQL Server 2012 SP1 이상 설치 되어 있어야 한다.
[구문]
sys.dm_db_stats_properties (object_id, stats_id) |
- Object_id (int) : 현재 데이터베이스에 포함된 개체의 ID
- Stats_id (int) : 지정된 object_id 통계. 통계ID는 sys.stats 동적 관리뷰에서 확인 할 수 있다.
[테이블의 모든 통계 속성 반환]
다음 스크립트를 통하여 해당 테이블에 대한 통계 속성을 확인 할 수 있다.
SELECT sp.stats_id, name, filter_definition, last_updated, rows, rows_sampled, steps, unfiltered_rows, modification_counter FROM sys.stats AS stat CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp WHERE stat.object_id = object_id('[Person].[Person]'); |
열 이름 | 데이터 형식 | 설명 |
Object_id | Int | 테이블 또는 인덱싱된 뷰의 ID |
Stats_id | Int | 통계 개체의 ID. 테이블 또는 인덱싱된 뷰 내에서 고유. |
Last_updated | Datetime2 | 마지막으로 업데이트된 날짜 |
Rows | Bigint | 통계 마지막 업데이트시 전체 행 수. 필터링 되거나 필터링된 인덱스의 경우 실제 행 수보다 적을 수 있음 |
Row_sampled | Bigint | 통계 계산을 위해 샘플링된 전체 행 수 |
Steps | Int | 히스토그램의 총 단계 수 |
Unfiltered_rows | Bigint | 필터링 된 통계의 필터 식을 적용하기전 테이블의 전체 행수. 통계가 필터링 되지 않으면 unfiltered_rows는 rows열에서 반환하는 값과 동일 |
Modification_counter | Bigint | 통계를 마지막으로 업데이트한 이후 히스토그램이 작성된 열의 총 수정 개수 |
[빈번히 수정된 통계 속성 반환]
다음 스크립트는 1000번 넘게 수정된 선행 열에 대한 현재 데이터베이스의 모든 테이블, 인덱싱된 뷰 및 통계를 반환 한다.
SELECT obj.name, obj.object_id, stat.name, stat.stats_id, last_updated, modification_counter FROM sys.objects AS obj JOIN sys.stats stat ON stat.object_id = obj.object_id CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp WHERE modification_counter > 1000; |
[참고자료]
http://msdn.microsoft.com/ko-kr/library/jj553546.aspx
http://msdn.microsoft.com/ko-kr/library/12be2923-7289-4150-b497-f17e76a50b2e
http://msdn.microsoft.com/ko-kr/library/42605c80-126f-460a-befb-a0b7482fae6a
2013-04-30 / 강성욱 / http://sqlmvp.kr
'SQL Server > SQL Server Tip' 카테고리의 다른 글
SQL Server 쿼리 처리 아키텍처 _ SQL 문 처리 (2/4) – 뷰(View) 확인 (0) | 2015.07.20 |
---|---|
SQL Server 쿼리 처리 아키텍처 _ SQL 문 처리 (1/4) – SQL 문 최적화 및 Worktables (0) | 2015.07.20 |
DMV를 이용한 플랜 캐시 사용 정보 확인 - Sys.dm_exec_cached_plans (0) | 2015.07.20 |
SQL Server 테이블 및 인덱스 구조 아키텍처(4/4) – 비클러스터형 인덱스 구조 (0) | 2015.07.20 |
SQL Server 테이블 및 인덱스 구조 아키텍처(3/4) – 클러스터형 인덱스 구조 (0) | 2015.07.20 |