Post

<오라클 성능 고도화 원리와 해법1> Ch03 오라클 성능 관리 - 도입

오라클 성능 고도화 원리와 해법1 - Ch03 오라클 성능 관리 - 도입

프로젝트에 참여할 때마다 기본적인 튜닝 교육을 실시해 보지만, 교육에 열의를 보이던 개발자조차도 실제 성능 문제에 맞닥뜨렸을 때 스스로 문제를 해결하지 못하는 경우가 대부분이다. 교육 내용이 실질적인 성과로 연결되지 못하는 이유를 따져 보니, 튜닝 절차와 방법론에 대한 언급 없이 쿼리 수행 원리만을 설명한 데에 원인이 있었다. 배운 대로 직접 해보려니 어디서부터 어떻게 접근해야 할지 몰라 포기하게 된다는 얘기를 들은 적이 있다.

그래서 아주 상세하지는 않더라도 기본적인 도구와 유틸리티 사용법, 그리고 실제 튜닝 업무에 종사하는 전문가들이 어떤 절차와 방법론에 따라 일을 진행하는지 간단하게나마 설명해야 할 필요성을 느꼈다. 이제 막 데이터베이스 성능 튜닝에 입문하려는 독자라면, 본 장에서 가장 유익하고 실질적인 도움을 얻었다고 느낄 것 같다.

데이터베이스 튜닝을 업으로 하는 사람은 환자를 치료하는 의사와 매우 비슷한 프로세스로 일을 처리한다. SQL 튜닝을 예로 들자면, 쿼리 성능에 문제가 생기면 Explain Plan을 통해 실행 계획(-> X-Ray 촬영)을 먼저 확인한다. 그것만으로 문제점을 정확히 파악할 수 없을 때는 AutoTrace(-> CT 촬영)를 걸어 수행 시 실제 일량을 측정하거나 SQL Trace(-> MRI 촬영)를 걸어 내부 수행 절차상 어느 단계에서 부하를 일으키는지 눈으로 확인한다. 문제점이 파악되면 쿼리를 변환하거나 옵티마이저 힌트를 사용(-> 외용약 또는 내복약 처방)해 튜닝을 실시하고, 그것만으로 부족하다고 판단될 때는 인덱스 조정(-> 칼을 대지 않는 시술)을 병행한다. 그래도 고객이 성능에 만족하지 못할 때는 어쩔 수 없이 반정규화를 실시하거나 집계 테이블을 생성(-> 칼을 대는 절개수술)하도록 권고하지만 이것은 구조적 문제에 기인할 때만 사용하는 최후의 수단이다. SQL 외에 다른 데이터베이스 요소를 튜닝할 때도 비슷한 절차로 진행된다.

지금부터 위에서 열거한 진단 도구들을 포함해서 미처 언급하지 못한 것까지 하나씩 친절하게 설명해 나갈 것이다. 참고로, 진단•튜닝을 위한 도구 및 방법론도 시간의 흐름에 따라 진화해 왔는데, 정확히 일치하진 않더라도 그 진행 순서에 따라 설명을 전개하려고 한다.

This post is licensed under CC BY 4.0 by the author.