Maenya's Techlog

쿼리 성능개선하기! 인덱스란? 인덱스 힌트 사용법? 실무에 적용하기 본문

서버/RDBMS

쿼리 성능개선하기! 인덱스란? 인덱스 힌트 사용법? 실무에 적용하기

ming235 2020. 12. 18. 20:15

이것을 업무일지에 넣어야하나 고민을 참으로 많이했다.

오늘도 역시나 SAG팀에서 프로그램 돌아가는 걸 모니터링하고있다가

우리 서버에서 오래걸리는 쿼리를 잡아내어 튜닝해서 나보고 적용하라고 메일이 왔다.

우리팀에 유독 성능이 떨어지는 쿼리가 많다고 느꼈고 이렇게 자꾸 귀찮게 메일받아서 고치느니 내가 먼저 고쳐놔야겠다 라는 생각이 들어서 쿼리 성능 개선 하는 방법에 대해 알아봤다.

 

SAG팀에서 고쳐주는 걸 보면 /*+ index(테이블명) */  뭐 이런식으로 주석처럼 달아서 주는데

이게 나름 조회하는 시간을 몇초씩 단축시켜줬다. 

 

 

인덱스?

 

테이블의 동작 속도를 높여주는 자료 구조.
데이터의 위치를 빠르게 찾아주는 역할.

데이터베이스 메모리에 일정 공간을 사용해 저장이 되고,
데이터를 조회할 때 소모되는 메모리를 효율적으로 사용하게 한다.

- 적절한 인덱스 힌트를 사용하면 쿼리의 수행속도를 향상 시킨다.

 

 

인덱스 사용법

 

1) order by 기능

INDEX(INDEX_ASC) : 오름차순 정렬

INDEX(INDEX_DESC) : 내림차순 정렬

 

2) index hint 조회. 인덱스 태우기.

SELECT /*+ {index hint}({table명} {index명}) */ 

         {...,

           컬럼명}

FROM {table};

 

 

 

이외에도 조인조건을 걸거나 불필요한 조건은 제거하여 더욱더 성능 좋은 쿼리로 튜닝할 수 있다.

나도 실제로 업무에서 많이 쓰고 있으니까 이 부분은 더 공부를 해봐야 겠다.

 

 

 

 

 

 

 

'서버 > RDBMS' 카테고리의 다른 글

AWS (Amazon Web Services)  (0) 2020.07.13
NoSql - 몽고DB 사용일지  (0) 2020.07.13
MySql 실습  (0) 2020.06.15