MSSQL 실행계획 보는 방법 및 인덱스 변경(튜닝 방법)

Posted by Breeze24
2017. 4. 23. 19:04 DB/MSSQL

기존에 대부분의 프로젝트에서 오라클로 개발을 했었다. 

오라클을 주로 사용하다 보니, 오라클 문법에서 실행계획 보는 방법과 어떻게 인덱스를 태워야 효율적으로 쿼리가 실행되는지를 확인하고 튜닝하는 것이 쉬웠었는데, MSSQL은 익숙하지 않다보니 튜닝을 어떻게 해야하는지 확인하기 어려웠다.


최근에 MSSQL로 개발을 해야할 일이 생겼는데, 개발하고 한 달이 지나니 특정 쿼리에서 2분여의 시간이 발생을 했다. 

MSSQL 실행계획 보는 방법


그래서 그 부분을 튜닝을 해야했는데, 오라클에서만 튜닝을 하다 보니 MSSQL 쿼리 튜닝은 어떻게 해야하는지 막막했다. 인터넷 검색을 1시간 동안 해서 하는 방법을 알아냈고, 튜닝도 성공적으로 수행할 수 있었다. 

.

이번 포스팅에서는 MSSQL 쿼리 튜닝하는 방법에 대해 알아보자. 


MSSQL 실행 계획 보는 방법


쿼리 창에서 쿼리를 작성 후에 오른쪽 마우스를 클릭하면 아래와 같은 명령어가 보인다. 

여기서 예상 실행 계획 표시 버튼을 클릭하면 된다. 


MSSQL 인덱스 변경


쿼리를 수행하고 나면 아래와 같이 쿼리가 어떤 순서로 실행되는지를 확인할 수 있다. 

여기서 단계를 클릭하면 어떤 방식으로 연산하고, 예상 I/O 비용과 예상 CPU 비용, 예상 실행 횟수등을 확인할 수 있다. 


MSSQL 튜닝 방법


MSSQL 인덱스 튜닝


이렇게 하면 쿼리에 대한 실행 계획 확인이 가능하다. 

.


그 후에 쿼리를 어떻게 튜닝해야 될까?


MSSQL 인덱스 튜닝 방법


튜닝의 가장 기본인 인덱스 튜닝하는 방법에 대해 알아보자. 

실행되는 쿼리가 인덱스를 다른 것으로 실행되도록 하기 위해서 오라클에서는 아래와 같이 인덱스를 줄 수 있다. 


SELECT /*+index(T IDX_NAME) */ COL_NAME FROM 


위와 같이 주면 되는데, /*+index(T IDX_NAME) */ 를 MSSQL 쿼리에 그대로 주어도 쿼리의 실행 인덱스는 변하지 않는다. 

.

MSSQL에서는 인덱스를 아래와 같이 주어야 인덱스를 정상적으로 타게 된다. 


MSSQL with index


이렇게 하면 부하 걸리는 쿼리를 가장 쉽게 튜닝할 수 있게 된다. 

'DB > MSSQL' 카테고리의 다른 글

MYSQL 암호 변경  (0) 2016.06.05
MSSQL 오류 순환 문제  (0) 2016.06.05
MSSQL Bruteforce 공격 차단 방법  (0) 2016.06.05
xp_ReadErrorLog  (0) 2016.06.05
MSSQL OS 메모리 사용량 확인  (0) 2016.06.05