SSMS 에서 Ctrl + M 을 눌러서 '실제 실행 계획 포함' 이 활성화 된 상태에서
쿼리를 실행 시키고 나면 실행계획이 함께 나타납니다.
실행계획 상의 특정 노드에 마우스를 가져가면 상세한 내용이 나타 납니다.
위 그림에서 '예상 행 수' 가 2.77684로 되어 있어 옵티마이저가 2.7행을 예상 했다고 생각할 수 있으나
실제 예상 행 수는 '예상 실행 횟수'를 곱한 값이 됩니다.
따라서 해당 노드에서 반환되는 총 예상 행 수는 2.77684 × 6985.3104807 = 19397.08956 입니다.
이 총 예상 행 수 값이 노드 하단의 분모 값 입니다.
그리고 분자 값은 '실제 행 수' 입니다.
괄호 안의 %값은 총 예상 행 수 대비 실제 행 수의 백분율 입니다. 이 백분율 값이 100%에 가까울 수록
통계값에 의한 적절한 실행계획이 수립되었다고 볼 수 있습니다.
그러나 아래의 경우 처럼 이 값이 과도하게 적거나 많을 경우 통계가 제대로 갱신되지 않아서 엉뚱한 실행계획이
수립되었을 가능성이 있습니다.
이 경우 UPDATE STATISTICS 로 최신 통계로 업데이트가 필요 합니다.
※ [2020.10.29] 추가.
SSMS 버전 18.5 이후에 실행계획 항목(속성) 일부의 명칭이 바뀌고, 추가된 것으로 확인 됩니다.
기존 '실제 행 수'가 '모든 실행에 대한 실제 행 수'로, 기존 '예상 행 수'가 '실행당 예상 행 수'로
각각 명칭이 변경 되었습니다. 그리고 '모든 실행에 대한 예상 행 수' 속성이 추가 되었습니다.
같은 실행계획을 이전의 SSMS 에서 확인했을 때는 다음과 같았습니다.
'데이터베이스' 카테고리의 다른 글
[SQL서버] SSMS 완료 시간 표시 끄기 (0) | 2020.06.08 |
---|---|
[SQL서버] 변수를 포함한 OpenQuery UPDATE (2) | 2019.10.29 |
[SQL서버] SSMS v.18로 로그인시 암호저장이 잘 안될때 (1) | 2019.07.22 |
[SQL서버] 임시테이블, 테이블변수 간 성능이슈 (0) | 2019.07.18 |
[SQL서버] SP 내에서 로컬변수 사용 주의 (0) | 2019.07.04 |