SQL Server 2016 라이브 쿼리 통계
-
Version : SQL Server 2016
SQL Server 2016 이전까지는 쿼리에 대한 실행 계획, 통계 정보 등이 쿼리가 완료된 후에 확인 할 수 있었다. SQL Server 2016부터 도입된 라이브쿼리 통계는 쿼리가 실행 되는 동안의 실행 계획 및 처리 행수, 실행 통계 등을 확인할 수 있다.
라이브 쿼리 통계는 SSMS에서 상단 메뉴 [쿼리] 또는 [빠른 실행아이콘]에서 [활성 쿼리 통계 포함]을 선택하여 활성화 할 수 있다.
라이브 쿼리 통계를 활성화 후 쿼리를 실행하면 별도의 탭에 실행계획의 흐름이 점선으로 표시 된다.
각 운영자는 실행 단계에서 얼마나 많은 작업이 수행되고 있는지 알 수 있다. 실행 계획에서 마우스 오른쪽을 클릭하여 나타나는 속성 창을 통해서는 처리 된 행의 수를 볼 수 있다. 이때 쿼리가 실행 중 일 때는 정보가 지속적으로 갱신 된다.
SSMS에서 작업 모니터를 통해서 실시간 실행 계획을 확인할 수 도 있다. 하지만 통계 프로파일 인프라가 세션을 활성화해야 하기 때문에 라이브 쿼리 통계의 큰 단점중의 하나이다.
라이브 쿼리 통계가 비활성화 되어 있으면 회색으로 처리되어 실행계획을 확인할 수 없다.
라이브 쿼리 통계작업은 몇 가지 제한 사항이 있다.
-
컬럼스토어 인덱스는 지원되지 않는다.
-
메모리 최적화 된 테이블은 지원되지 않는다.
-
기본적으로 컴파일 된 저장 프로시저는 지원되지 않는다.
라이브 실행 계획은 기본 테이블의 통계만큼 좋다. 하지만 문제가 있는 경우 이러한 잘못된 계획이 반영될 수 있다. 다음 예제를 통해서 살펴 본다. 통계 업데이트 구문을 사용하여 10행 데이터만으로 통계 정보를 업데이트 한다.
UPDATE STATISTICS [dbo].[bigProduct] WITH ROWCOUNT = 10; |
위 스크립트로 옵티마이저는 잘못된 통계 정보를 생성하고 계획을 생성한다. 라이브 실행 계획을 살펴 보면 쿼리는 계속 실행 되고 있지만 일부 실행계획에서는 화살표가 이미 고정된 쿼리 계획이 사용되고 있는 것을 확인 할 수 있다.
[참고자료]
https://www.mssqltips.com/sqlservertip/3685/live-query-statistics-in-sql-server-2016/
2015-08-17 / 강성욱 / http://sqlmvp.kr
SQL Server 2016, SQL 2016, SQL 실행계획, 라이브 쿼리 실행계획, 라이브 실행 계획, 옵티마이저, 쿼리 플랜, 통계 업데이트
'SQL Server > SQL Server Tip' 카테고리의 다른 글
SA 계정 이름 변경 및 비활성화 (0) | 2015.08.25 |
---|---|
SQL Server 데이터베이스 속성을 확인할 때 사용되는 master.dbo.spt_values 복구 (0) | 2015.08.19 |
XML로 생성된 정보를 테이블로 저장하기(sp_xml_preparedocument) (0) | 2015.08.12 |
SQL Server 2016 SSMS 새로운 기능 (0) | 2015.08.10 |
SQL Server 2016 Temporal Table – 데이터 변경 내용 추적 (0) | 2015.08.05 |