SQL Server/SQL Server Tip

SQL Server 2016 라이브 쿼리 통계

SungWookKang 2015. 8. 17. 10:43
반응형

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 실행계획, 라이브 쿼리 실행계획, 라이브 실행 계획, 옵티마이저, 쿼리 플랜, 통계 업데이트

반응형