메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

지금 당신의 데이터베이스는 최고의 성능을 발휘하고 있습니까?

한빛미디어

|

2003-09-22

|

by HANBIT

10,834

데이터베이스 그리고 튜닝

데이터베이스는 계속해서 발전하고 있다. 현재는 객체 관계형 데이터베이스를 많이 사용하는 추세인데, 표준인 SQL 역시 이런 흐름에 맞게 조금씩 변화 발전하고 있다. 데이터베이스에 대한 관심 증대와 아울러 데이터베이스 성능과 관련된 튜닝 또한 시간이 갈수록 그 중요성이 증대되고 있다. 데이터베이스 튜닝 작업은 데이터베이스를 사용하는 애플리케이션의 튜닝으로부터 데이터베이스 서버 및 시스템 튜닝까지 그 범위가 상당히 넓다. 특히 SQL 튜닝은 DB 서버의 사양이나 구조, 테이블 관계 등에 따라 적용해야 할 기법이 달라지게 되는 특징이 있다. 그래서 개발자가 SQL 튜닝을 하려면 상황에 맞는 종합적인 판단 능력이 필요하다.

이런 독자들의 요구에 따라 한빛미디어㈜에서는 『오라클 SQL 튜닝: 쿼리의 본질과 성능 향상에 대한 37가지 이슈』를 출간하였다. 특히 이 책은 상황에 따른 종합적 판단을 위해, 이론적인 필수 지식을 바탕으로 어떻게 하면 보다 효과적인 SQL 문이 되 수 있는지를 상황별로 보여주고 있다. 따라서 초급자보다는 중,고급 사용자들에게 유용한 책이다.

왜 SQL 튜닝이 필요한가!

이 책의 저자 최승인님은 이 질문에 대해 다음과 같은 언급을 하였다. “애플리케이션을 개발하면서 원하는 대로 성능이 나오지 않을 때 가장 많은 문제의 원인이 되는 동시에 간단한 수정으로 성능을 향상시킬 수 있는 부분이 바로 SQL이다. 또한 제대로 알고 있다면 얼마든지 쉽게 수정하고 최적화된 문장을 사용할 수 있지만 그렇지 않으면 상당히 고생할 수 있는 부분이 SQL이다.” 저자의 지적대로 SQL문은 같은 결과를 여러 가지로 다양하게 만들 수 있는 상당히 유연한 언어이다. 이러한 SQL 문을 효율적으로 다루는 방법을 상황별 튜닝 사례를 통해 구체적으로 배울 수 있는 『오라클 SQL 튜닝: 쿼리의 본질과 성능 향상에 대한 37가지 이슈』에는 어떤 내용들이 수록되어 있는지 지금부터 좀더 구체적으로 살펴보기로 하자.


오라클 SQL 튜닝 : 쿼리의 본질과 성능 향상에 대한 37가지 이슈

참고 도서

오라클 SQL 튜닝 : 쿼리의 본질과
성능 향상에 대한 37가지 이슈

최승인


부/장별 내용 요약



1장 데이터베이스와 SQL
DBMS와 SQL에 대한 이해는 현재의 SQL을 이해하는데 상당히 많은 도움을 준다. 그리고 데이터베이스에서 데이터를 추출하기 위한 조인이나 SQL이 어떤 종류로 나눌 수 있는지를 안다는 것은 체계적으로 SQL을 이해하는데 도움이 될 것이다.

2장 데이터베이스 성능과 SQL 튜닝
튜닝을 하기 위해서 당연히 먼저 튜닝의 목표를 설정하는 것으로부터 튜닝을 시작한다. 목표를 세우고 난 뒤에는 디자인, 그리고 애플리케이션, DBMS 서버, 그리고 시스템 튜닝을 하도록 하는 것이 좋다.

3장 SQL 튜닝을 위한 오라클 구조의 이해
시스템이건 간에 기본적인 구조를 이해하는 것이 그 시스템을 사용하는 기본이 된다. 다시 말해, 시스템을 잘 이해하는 것이 곧 잘 사용하기 위한 밑거름이 된다. 내가 작성한 SQL이 어떻게 데이터베이스에서 처리되고 있는지를 안다면 어떤 방법으로 프로그램을 작성할지 고민하게 되고, 더 성능이 좋은 프로그램을 작성할 수 있다.

4장 최적화된 실행 경로 찾기 : 옵티마이저
옵티마이저(Optimizer)는 사용자가 오라클 서버에 보낸 SQL 문을 실제로 어떻게 수행할 것인지를 확인하고 어떤 방법으로 실행하는 것이 가장 좋은지를 선정한다. 이것은 쿼리를 모니터링하고 튜닝할 때, 성능의 최적화를 시작하는 기본적인 단계이다.

5장 SQL 문의 실행 계획: 비용 기반 옵티마이저
비용기준 옵티마이저는 규칙기준 옵티마이저보다 실행계획을 세우는데 더욱 효율적이다. 비용기준 옵티마이저의 구조, 연산방법, 쿼리문 변경, 관련된 파라미터, 그리고 옵티마이저의 한계 등 비용기준 옵티마이저의 기본적인 구조를 알 수 있다.

6장 SQL 실행계획과 힌트, 통계정보의 활용
실행계획을 보는 툴이 없다면, 사용자는 SQL 문을 실행했을 때, 빨리 실행될지 아니면 늦게 실행될 지에 대한 원인을 알 수 없다. 이런 툴을 사용해서 사용자는 오라클 옵티마이저가 SQL 문을 어떻게 처리할 지를 결정할 수 있으며, 또한 이런 실행계획이 자원을 어떻게 사용하게 될 지도 알 수 있다.

7장 효율적인 테이블 구조와 파티셔닝
테이블은 데이터의 저장소이다. 하지만 어떤 형태로 저장해야 이 데이터를 조건에 맞게 쿼리를 할 때 빨리 추출될 수 있는지는 중요한 부분이다. 특히 파티션과 같은 테이블은 데이터 웨어하우스나 DSS 같은 시스템에서 대량의 데이터를 다룰 때 많이 사용될것이다.

8장 인덱스를 이용한 SQL 튜닝
인덱스는 테이블에 있는 데이터를 보다 빠르게 조회하기 위해서 사용되는 오라클의 객체이므로 SQL을 튜닝하는데 있어, 빠질 수 없는 중요한 부분이다.

9장 데이터 액세스와 테이블 조인
테이블을 어떤 방법으로 읽느냐 하는 액세스방법과 오라클이 관계형 데이터베이스이기 때문에 필연적으로 필요한 기능 중에 하나인 테이블간의 조인은 SQL 튜닝에서 중요한 초점이 된다.

10장 SQL의 병렬 처리와 튜닝
병렬 프로세스를 이용해서 SQL 문을 사용하는 것은 작업을 빠르게 사용하는데 특히 필요한 부분이다. 특히, 대량의 데이터를 작업하는 데이터 웨어하우스 환경이나 DSS 리포트를 만드는 시스템에서는 병렬 프로세스를 이용하는 것은 상당히 중요하다.

11장 SQL 튜닝 실무와 고려 사항
테이블 액세스 방법, 인덱스의 활용 방법, 그리도 조인 순서에 대해서 튜닝의 관점에서 정리하고, ANALYTIC 함수의 사용을 통해서 SQL 문을 더 간단히 만들 수 있다.
TAG :
댓글 입력
자료실

최근 본 책0