DB 튜닝서비스
DB 노하우, 데이터직무, 다양한 인터뷰를 만나보세요.
튜닝절차
조금 전 설명처럼 튜닝을 보다 체계적으로 실시하기 위해서는 전체적인 튜닝 방법론이 필요하듯이 각 부분에서는 튜닝메쏘드(TUNING METHOD)가 필요합니다. 튜닝 방법론의 2단계에서 소개되었듯이?
튜닝 방법란 튜닝절차를 의미합니다. 튜닝이란 성능을 저하시키는 원인을 데이터베이스 관리자가 정확하게 알고 있다면 문제점에 대해 직접적으로 튜닝을 실시하면 되겠지만 그 원인을 정확히 모른다면 어떤 부분부터 어떻게 튜닝을 시작해야 할지를 알 수 없을 때 적용하는 방법입니다. 튜닝의 방법은 여러 가지가 있습니다. 그리고, 여러 가지 문제점으로 인해 성능이 저하됩니다. 그 원인을 데이터베이스 관리자가 알 수 없다면 다음과 같은 순서와 방법으로 튜닝을 실시하십시오.
- 먼저,?비즈니스 튜닝이란 실제적인 데이터베이스에서 일어나는 튜닝이 아니고 회사나 학교, 조직에서 처리되는 업무의 흐름에 대한 튜닝을 의미합니다. 만약, 핸드폰을 생산하는 2개의 제조업체가 있다고 가정해 봅시다. A 회사는 10개의 공정을 거쳐 제품이 생산된다고 합니다. 반면에 B 회사는 8개의 공정만으로 똑같은 제품이 생산된다고 합니다. A 회사는 같은 제품을 10,000원에 생산하고 있고 B 회사는 8000원에 생산하고 있다고 합니다. 이런 경우, A 회사는 B 회사보다 많은 제조경비가 들기 때문에 B 회사보다 시장 경쟁력이 떨어진다고 합니다. 이에 따라 A 회사는 경영 컨설턴트를 통해 비즈니스 튜닝을 한 결과 10개의 제조공정을 7개 공정으로 줄일 수 있었다고 합니다. 이러한 불필요한 공정을 제거함으로서 생산시간과 생산단가, 생산인력을 줄이는 것을 비즈니스 튜닝이라고 합니다.
- 디자인 튜닝이란 데이터베이스가 분석되고 설계되는 단계에서 만들어지는 데이터베이스의 논리적 구조(테이블의 구조, 테이블의 크기, 인덱스 여부 및 종류 등)가 좋은 성능을 기대할 수 없게 만들어진 경우의 튜닝을 의미합니다. 또는, 애플리케이션 프로그램이 개발될 때 프로그램이 좋은 성능을 발휘할 수 있도록 만들어지지 못한 경우입니다. 생각해 보세요 !! 사용자들이 살고 있는 집의 구조가 출입이 불편하게 만들어져 있다면.....이해 되시죠 ?
- 애플리케이션 튜닝은 자동차와 운전자의 관계에서 운전자의 운전능력과 관련된 내용입니다. 아무리 좋은 차, 아무리 좋은 악기를 가졌다 하더라도 운전자 또는 연주자가 자동차의 운전방법과 연주하는 방법을 제대로 모른다면 좋은 성능을 기대할 수 없겠죠 ? 데이터베이스에서 사용자가 실행한 SQL문(SELECT, UPDATE, INSERT, DELETE)의 실행원리와 실행방법을 제대로 모르고 사용한다면 좋은 성능은 기대할 수 없는 것입니다. 이러한 SQL문을 분석하여 성능을 발휘할 수 있도록 조율하는 것을 애플리케이션 튜닝이라고 합니다.
- 서버튜닝은 데이터베이스의 메모리 영역과 물리적 구조에 관해 튜닝하는 방법입니다. 만약, 사용자가 P/C에서 윈도우 운영체제를 사용하고 있는데 대용량의 이미지 데이터 또는 텍스트 데이터를 처리하는 작업을 하고 있다면 시스템의 메모리가 충분하지 못하다면 작업처리에 시간이 많이 소요되고 어려움이 있을 것입니다. 이러한 원리와 마찬가지로 데이터베이스 메모리 영역의 크기가 처리하려고 하는 테이블의 데이터 크기보다 작아서 성능이 저하되는 문제가 발생하는 경우에 메모리를 더 크게 할당해주게 되는데 이런 문제를 조율하는 것을 서버튜닝이라고 합니다.
- 시스템 튜닝은 UNIX, 윈도우와 같은 운영체제에서 시스템의 성능향상을 위해 조율하는 방법을 의미합니다.
튜닝 방법론의 주요특징
-
- 튜닝의 빠른 단계일수록 성능을 개선시키는데 큰 효과를 볼 수 있습니다.
- 튜닝 방법에서 서버 튜닝을 하는 것 보다 애플리케이션 튜닝을 하는 것이, 애플리케이션 튜닝을 하는 것 보다 디자인 튜닝이 하는 것이 보다 효과적인 튜닝 방법이란 의미입니다. 하지만, 이러한 튜닝순서는 프로젝트가 수행되는 단계에서 성능을 고려하는 방법이고, 프로젝트 완료 후에는 서버 튜닝보다는 애플리테이션 튜닝을, 애플리케이션 튜닝보다 디자인 튜닝 순으로 작업하는 것이 적은 비용으로 성능을 향상시킬 수 있습니다.
-
- 어떤 단계에서 실행된 튜닝결과는 다음 단계의 튜닝에 영향을 미칩니다.
- 어떤 애플리케이션의 성능이 저하되었을 때 디자인 튜닝을 먼저하게 되면 비록 서버의 환경에 문제가 있더라도 서버튜닝 없이 성능이 개선되는 효과를 볼 수 있습니다.
-
- 튜닝에 대한 목표를 확실히 설정해야 합니다.
- 대부분의 개발자들은 튜닝작업을 할 때 명확한 목표를 두지 않습니다. 막연하고 의미없는 목표가 아니라, 시스템 전반적으로 충분한 고려를 한 다음 실현 가능한 목표를 설정해야 합니다. 모든 관련자들이 수용하고 인증할 수 있는 뚜렷한 목표설정이 매우 중요합니다.
-
- 튜닝 기록을 보관하십시오.
- 대부분의 개발자들은 튜닝을 마술이나 마법처럼 생각합니다. 하지만, 실제 튜닝은 규칙적, 비규칙적으로 실시해야 하며 반복적인 오퍼레이션의 결과를 참조함으로써 개선해 나가는 것 입니다. 이때, 이전에 실시되었던 튜닝전 기록은 잘 보관해 두었다가 튜닝 후의 결과와 비교할 때 사용할 수 있어야 합니다. 반복적인 튜닝작업을 수 차례 하다 보면 이전 튜닝결과를 기억하기 쉽지않기 때문입니다.
- 객체지향 설계기법 또는 클라이언트-서버 환경을 보다 효과적으로 적용하면 적은 비용으로 향상된 성능을 보장 받을 수 있습니다.
- 일반적으로, 데이터베이스 관리자는 서버튜닝을, 개발자는 애플리케이션 튜닝을, 분석/설계자는 디자인 튜닝단계를 기본적으로 책임지게 됩니다. 하지만, 서로 연관된 일을 하기 때문에 상호 보완된 작업을 통해 팀워크가 잘 조화되는 것이 튜닝의 관건이 되기도 합니다.