튜닝
데이터베이스에 대해서 공부를 하다보면 튜닝의 필요성 혹은 들어본적이 있을 것이다.
그러면 튜닝은 왜 하는가? 왜 해야하는지
데이터베이스 튜닝을 수행하는 이유는 다음과 같다.
- 데이터베이스 튜닝은 쿼리의 실행 속도와 데이터베이스 시스템의 성능을 향상시키는 데 목적이 있다.
- 즉 빠른 응답 시간과 높은 처리량은 사용자 경험을 향상시키고 업무 효율성을 증가시켜준다.
- 일부 데이터베이스 튜닝 작업은 데이터 접근 및 보안을 강화할 수 있다.
- 성능 최적화의 경우 비즈니스 목표 달성에 큰 도움이 된다.
- 데이터베이스 서버 자원(CPU, 메모리, 디스크 공간)을 최대한 효율적으로 활용하여 하드웨어 및 인프라 비용을 절감할 수 있다.
요약하면, 데이터베이스 튜닝은 데이터베이스 시스템을 최적화하여 빠른 성능, 자원 효율성, 비용 절감, 안정성, 보안, 비즈니스 성공 등을 지원하는 중요한 활동이다.
HINT
오라클에서 자주 사용하는 튜닝을 알아보자.
오라클에서는 각 행은 ROW ID라는 고유한 식별자로 관리된다.
이 ROW ID는 사용자에게 직접 시각적으로 보이지 않지만, 내부적으로 각 행의 위치나 주소를 표현한다.
ROW ID를 효과적으로 관리하는 객체가 바로 INDEX다. 하지만, 이 INDEX는 자바의 INDEX와는 다르게 작동한다.
INDEX는 데이터 검색과 관련된 성능 향상에 중요한 역할을 한다.
이 때 문뜩 드는 생각이 굳이 이렇게 까지 알아야하나? 정렬 할 때 SELECT, ORDER BY 사용하면 되지 않을까?
흔히 SELECT 쿼리를 실행하면 데이터가 정렬되어 반환된다고 생각할 수 있다. 하지만, 실제로 INDEX가 최적의
검색 알고리즘을 토대로 데이터를 가져온다. 이는 반드시 정렬된 결과를 의미하지는 않는다.
ORDER BY의 문제점
ORDER BY 절은 SELECT 쿼리 이후에 실행되므로, 쿼리의 길이가 길어질 수 있다. 이로 인해 실행 속도가 느려질 수 있기 때문에, 필요한 경우만 사용하는 것이 좋다.
이제 HINT 사용법에 대해서 알아보자.
SELECT /*+ INDEX_DESC(TBL_BOARD PK_BOARD) */
이 HINT는 TBL_BOARD 테이블의 PK_BOARD라는 INDEX를 내림차순으로 활용하도록 지시한다.
결론
데이터베이스 성능 최적화는 복잡한 과정이며, HINT는 이 중 하나의 도구다. 적절한 HINT를 사용하여 성능을 최적화하는 것은 중요하다. 이를 통해 더 빠르고 효율적인 데이터 검새과 처리를 구현할 수 있다.