이 글은 CJ시스템즈에서 DBA로 일하고 있는 임응선 대리가 퀘스트소프트웨어의 오라클 개발자를 위한 툴인 'TOAD'를 직접 사용해보고 쓴 것이다. <편집자>










TOAD(Tool for Oracle Application Developer)는 오라클 개발자를 위한 업계의 표준 개발 툴로 인정받고 있다. 어렴풋이 기억을 더듬어 보면 버전 5부터 사용했던 것으로 생각된다. TOAD와 같은 개발 툴을 이용하여 프로그램을 사용하기 전에는 대부분 텍스트 화면에서 명령어를 통해 개발업무를 하였다. 지금은 TOAD가 없는 개발 및 관리를 위한 업무환경은 상상할 수 없다. 편리하면서 다양한 기능을 통하여 개발자를 위한 통합 환경을 제공하고 있다.

회사의 구매부서 담당자가 S/W수요 조사 때마다 다음과 같이 질문한다. "MS SQL의 경우에는 자체적으로 제공되는 툴을 사용합니다. 그러나 오라클의 경우에는 TOAD와 같은 툴을 꼭 구입해서 사용해야 합니까?" 오라클 개발환경이 MS SQL보다 다소 불편한 점이 있다. 그 점을 보완하고 오라클 개발자를 위해 써드파티 회사들이 다양한 개발 툴을 출시하였으며, 그 중에서도 TOAD는 개발자 및 DBA에게 가장 많이 사랑 받는 툴이다.

지금부터 최근 업그레이드된 9.61버전의 TOAD DBA Suite for Oracle에 대해 알아 보겠다. TOAD DBA Suite for Oracle은 TOAD for Oracle, Spotlight on Oracle, Quest SQL Optimizer for Oracle, TOAD Data Modeler, Benchmark Factory for Database, 및 Knowledge Xpert로 구성되어 있다.

1.TOAD for Oracle
Oracle 10g로 업그레이드 되면서 DBA와 개발자 모두에게 DB를 분석하고 효율화 하는데 좀 더 편리한 환경이 되었다. TOAD도 업그레이드 되면서 Oracle 10g의 신규 기능을 쉽게 사용하도록 다양한 지원환경이 준비되어 있다.

1.1 Oracle Tuning Advisor
Oracle 10g는 튜닝을 위한 Advisor 기능을 제공하고 있으며, TOAD에서도 이를 효과적으로 사용할 수 있도록 기능이 추가되었다. 오라클에서 제공하는 DBMS_SQLTUNE 패키지를 이용하는 것으로 Explain plan 및 Predicate Info을 OLD 및 NEW로 비교 분석한다. 분석된 내용을 바탕으로 성능향상을 위한 대안 스크립트를 제공하여 준다.

1.2 AWR Browser
Oracle 10g에서 새로 제공하는 AWR 데이터는DBMS_SWRF_INTERNAL 패키지를 이용하여 관련정보를 얻을 수 있지만, TOAD에서 제공하는 AWR Browser를 사용하면 좀 더 편리하게 데이터를 확인할 수 있다.

1.3 Session Browser
사용자 Session 상태를 확인하는 기능이다. 여러 가지 이유로 DB에 Lock이 발생하는 경우가 있다. 이 문제를 파악하고 해결하기 위하여 일반적으로 사용되는 SQL구문이 주어지지만, 정확한 세부내용을 분석하기에는 약간 불편한 점이 있다. TOAD의 Session Browser를 이용하면 특정의 Job이 어떤 세션 및 유저를 통하여 수행되고 있는지, 어느 정도 서버에 큰 부하를 주고 있는지를 파악할 수 있다. 뿐만 아니라 부하와 관련된 Wait나 Lock의 발생여부 등을 편리하게 확인하고 신속히 처리할 수 있다.

1.4 Export File Browser
Export File Browser는 Oracle의 EXP 명령어로 백업 받은 Dump 파일을 직접 오픈하고, Table의 데이터 및 스키마의 스크립트 등을 확인할 수 있다. Dump 파일의 데이터나 스크립트를 확인 및 실행하기 위해서는 Dos용 Utility를 이용하거나 Dump된 파일을 Import 한다. Export File Browser를 이용하면 즉시 확인 및 추출이 가능하므로 효과적으로 사용할 수 있다.

TOAD에는 편리하면서도 유용한 기능이 많이 있다. 앞의 글에서는 버전 9.61의 새로운 기능과 개선된 기능을 살펴 보았다. 사용하면 할수록 훌륭하고 효과적이지만, 추가하면 좋을듯한 새로운 기능들도 있다. 예를 들어 유니코드를 통한 다국어 지원이다. 그러나 이에 대한 염려를 하지 않아도 된다. 차기로 예정된 TOAD 10에서 유니코드 지원기능이 추가될 예정이다. 요즘 대다수의 기업들이 세계적인 진출을 하고 있으며 다국어 지원은 반드시 필요한 기능이다. 유니코드가 지원되지 않아서 타국가의 문자들이 깨져 보이는 것은 바로 해결될 것이다.

2. SQL Optimizer for Oracle
제품명에서 나타나는 바와 같이 SQL문을 최적화 해주는 프로그램으로 좀 더 빠르고 효율적인 SQL 구문으로 튜닝 하는 데에 큰 도움을 주는 툴이다.

2.1 Tuning Lab
모니터링 및 확인과정을 통하여 특정한 SQL구문에 대한 분석이 필요한 경우에, Tuning Lab을 이용하여 구문의 정확한 분석 및 최적화 과정을 수행한다. 다양한 대안을 제시하고 비교해서 가장 좋은 대안을 선택하도록 하는 기능이므로 SQL 튜닝 전문가가 아니거나 업무와 데이터베이스를 처음으로 시작한 담당자라 하더라도 튜닝이 가능한 확인, 분석 대안 제시 등을 쉽게 진행하도록 도움을 준다.

2.2 Batch Optimizer
SQL Optimizer에 새로 추가된 Batch Optimizer에 대해 살펴보자. 선택한 데이터베이스 오브젝트를 일괄적으로 Optimize 작업을 수행한다. SQL구문 또는 별도의 튜닝 리스트가 주어져 있다면, Optimize를 수행할 오브젝트를 선택하고 수행하는 업무에 큰 효과를 가져올 수 있다.

Function과 View를 한 개씩 선택하여 Optimize를 수행한 결과, View를 구성하는 SQL문에 힌트를 이용한 최적화 방안을 제시한다. 그 동안 튜닝하지 못했던 객체들을 일괄적으로 Optimize 하는 작업을 수행하였다. SQL Optimizer를 이용한 결과, 문제SQL을 한 개 한 개씩 확인하고 해결하는 기존의 방식보다 소요된 시간과 업무량이 많이 절약되었다.

DBA 업무를 하는 담당자라면, 튜닝 생산성 향상을 위해 사용함으로써 반드시 기대 이상의 결과를 가져올 것이다.

2.3 SQL Scanner
SQL Scanner는 오브젝트가 내부적으로 가지고 있거나 SGA 영역에서 수행중인 SQL구문을 확인하고자 할 때 사용하는 툴이다. 텍스트 형태로 스크립트 내부의 SQL구문에 문제 가능성이 있는 부분을 찾아준다.

2.4 Indexing
특정 SQL구문에 대해서 효과적인 인덱스를 추천하고, 가상인덱스를 대안으로 제시하고, 또한 비교 분석할 수 있도록 효율적인 인덱스 생성에 도움을 준다. TOAD의 Oracle Tuning Advisor 에서 튜닝한 SQL구문으로 테스트를 한 결과, 이미 제안한 인덱스를 생성하였으므로 특별히 추천할 인덱스가 없다고 표시된다. Indexing을 통해서 인덱스를 추가하거나 변경하였을 경우, 시스템의 다른 부분에 영향을 끼치는지를 파악할 필요가 있다. 이때 사용하는 것이 Impact Analyzer 기능이다. 새로 생성된 인덱스나 수정된 인덱스가 시스템의 다른 부분에 영향을 미치는 지 영향을 확인 함으로써, 전체적인 시스템 효율화를 위한 선택이 가능하도록 도움을 준다.

3. Spotlight for Oracle
이전 버전을 테스트로 사용해 보았지만, 이번 버전에서 더욱 더 편리하고 완벽해진 느낌이다. 언제나 깔끔한 인터페이스가 정말 맘에 드는 프로그램 이다.

3.1 Home
두 개의 데이터베이스에 접속한 후의 홈 화면이다. 데이터베이스 전체 현황과 메트릭스가 한 눈에 들어온다. 각 메트릭스의 지표 및 흐름이 실시간으로 제공되기 때문에 현재의 간략한 이력과 함께 앞으로의 상태 및 문제점을 예측하도록 도움을 준다. 복수개의 DB 상태를 동시에 관리할 수 있어서 DBA가 사용하면 더욱 효율적으로 관리할 수 있다. 녹색은 정상, 주황색은 주의, 빨간색은 경고를 나타내므로 각 메트릭스의 심각성에 따라 다른 색상을 나타낸다.

SQL구문을 실행시키면 각 메트릭스의 지표가 변화하는 것을 볼 수 있다. 변화를 모니터링 하던 중에 경고가 뜨면서 해당 메트릭스가 빨간색으로 깜빡이며 Tray에서도 함께 경고표시를 나타낸다.

문제가 발생하였을 때 해당 부분을 클릭하면 현재 발생한 문제점과 Knowledge expert의 도움말을 제공 받을 수 있다. DB의 해당 메트릭스가 순간적인 문제일 경우 지표가 정상적으로 돌아오며, 빨간색에서 주황색으로 다시 녹색으로 바뀌면서 정상적인 상태로 돌아온다.

3.2 Sessions
Top Session / Parallel Query Session / JOBS 에 대하여 현재 사용되는 상태 및 지표를 확인한다.

3.3 Top SQL
CPU, 메모리 및 I/O 등에 많은 자원을 사용하는 SQL구문을 확인하는 화면이다. 여러 조건을 넣고 해당조건과 관련된 SQL구문을 쉽게 찾을 수 있다. 데이터 베이스가 특정 시점에 특정 SQL구문에 의해 느려지는 현상이 종종 발생하는 경우에, 현재화면을 이용하여 문제발생 확인, 진단 및 조치가 가능하다.

3.4 Activity
데이터베이스의 Waits / Waiting Event / Block Locks / Lock Activity / Latches / Server / Transaction / Rollback / Buffer Busy Waits에 대하여 실시간으로 차트와 도표를 통해 확인한다. 홈에서는 현재의 지표만을 제공하지만 시간 추이에 따라 모니터링이 가능하다.

3.5 I/O(Input / Output)
현재 서버의 I/O 현황으로 Sessions / Physical / Segment / Logical / Buffer pool 에 대한 상태를 차트와 도표로 제공한다.

3.6 Configuration & Memory
메모리 현황과 Oracle Parameter등을 확인할 수 있다. Buffer Cache 영역을 많이 사용하고 있음을 확인할 수 있으며, 이에 따라 Buffer Cache영역의 개선방향을 고려할 수 있다.

3.7 OS Detail
OS Performance / OS Process / OS Disk Storage 등을 확인해 볼 수 있다. OS자체에서도 확인 가능하지만 한 눈에 편리하게 확인하는 것이 장점이다.

3.8 Disk Storage
Redo Log / Tablespace 사용량 / Recovery Area 에 대한 상세내역을 보여준다. 용량이 부족하여 문제가 발생할 때, 사전에 확인하여 조치할 수 있도록 도움을 준다. 모든 오브젝트를 System Tablespace에 생성하여 사용하므로, 해당 Tablespace가 가장 많이 사용되고 있음을 확인할 수 있다.

3.9 Tuning
Performance / Memory Management /Latch에 대한 내역을 보여준다. 데이터베이스의 전반적인 성능 향상과 관련된 데이터를 즉시 확인할 수 있다.

3.10 Alarm log
어떤 문제가 언제 발생하였는지, 해당 리스트를 확인할 수 있다. 담당자의 미확인 리스트를 다시 파악하고, 문제가 발생한 전반적인 과거이력을 확인한다. 해당 상세내역을 바탕으로 치명적이지 않지만 반복적으로 발생하는 문제에 대해서 파악하고 해당 항목에 적극적으로 대처할 수 있다.

지금까지 Spotlight on Oracle 을 살펴보았다. Spotlight on Oracle은 마치 DBA를 위해 잘 훈련된 비서가 관련정보를 일목요연하게 정리하여 보고하는 형태이다. TOAD에서 제공되는 기능과 일정부분 겹치는 부분이 있다면, 그것은 직관적이고 강력한 모니터링을 기반으로 문제해결에 초점에 맞추고 있다. TOAD와 상호 보완적인 기능을 통해 데이터베이스가 안정상태로 운영되고 효율적으로 문제를 파악하고 해결하도록 대안을 제시한다.

4. Benchmark Factory
데이터베이스의 성능을 벤치마크하는 프로그램이다. TPC(Transaction Processing Performance Council)의 TPC-C, TPC-H 등의 업계 표준 수치를 활용하여 테스트에 대한 신뢰성을 보장한다.

시나리오에 따른 테스트를 수행하고 결과에 따라 현재 시스템 성능이 적합한지 확인할 수 있다. 프로젝트 오픈 전이나 또는 시스템 운영환경에서도 대규모의 트랜잭션이 예상될 경우 사전 테스트를 실시하고, 발생할 문제점에 대해 대안을 마련하도록 도움을 준다. 수행결과를 통한 리포트를 근거로 하여 데이터베이스 시스템 확장 및 업그레이드에 대한 요청을 하는 데에 기본적인 메트릭스와 지표를 제공할 수 있으며, 성능관련 문제를 사전에 해결하도록 도움을 준다.

5. TOAD Data Modeler
데이터베이스 성능향상을 위한 다양한 방법 중에 기본적으로 데이터베이스 스키마 설계가 가장 중요하다. 설계가 잘못된 데이터베이스는 어떠한 튜닝 항목을 통하여 성능향상을 도모한다 할지라도 큰 도움이 되지 않는 경우도 종종 발생한다. 그러므로 모델링은 가장 기초적이면서 중요한 사항으로 다루어져야 한다.

프로그램을 초기 실행하면, 스키마 구조 및 관계를 확연히 파악할 수 있는 예제가 설명된다. 많은 사람들이 잘 알고 있는 유명한 예제인 비디오 대여점 모델이다. 해당 모델을 통하여 새로운 툴에 적응하기가 한결 수월하다. 또한 TOAD Data Modeler에서 DDL Script, Reporting, Reverse Engineering 등 많이 사용하는 기능은 Wizard 방식을 통하여 TOAD Data Modeler를 처음 사용하는 사용자도 쉽게 기능을 사용할 수 있다.

새로운 버전에서 Reverse Engineering을 통해 물리모델을 작성할 때 객체가 많은 경우도 효과적으로 사용할 수 있다. TOAD Data Modeler의 Customize 기능을 적절하게 사용한다면, 모델링, 개발 및 관리적 관점에서 TOAD가 더 효율적이며 효과적인 최고의 툴로 많은 아키텍트, 개발자 및 관리자들에게 회자될 것이다.

저작권자 © 컴퓨터월드 무단전재 및 재배포 금지