SQL Server/SQL Server Tip

SQL Server 2012 DMV를 이용한 통계 정보 확인

SungWookKang 2015. 7. 20. 12:03
반응형

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

 

 

반응형