정보과학 IT

튜닝(Tuning)의 개요

물곰탱이 2012. 8. 21. 11:45

튜닝(Tuning)의 개요

 

튜닝이란 한정된 자원을 투자하여 동일한 작업을 수행하면서 최소의 자원과 시간을 투자하여 작업을 할 수 있도록 하는 일련의 일 입니다. 특히 데이터베이스 튜닝은 한정된 데이터베이스 자원내에서 사용자들에게 보다 빠르게 데이터를 제공하는 것을 말합니다.

시스템 성능 저하의 원인들로는 부적절한 스키마 설계, 정상적인 처리를 하지 못하는 트랜잭션들, 잘못된 연결 관리 등이 있습니다.

튜닝의 목표로는 사용자의 SQL문에 대한 응답시간을 짧게 하는 것, 데이터베이스의 가용성을 높이는 것, 즉 중단 없이 데이터베이스가 돌아 갈 수 있도록 하는 것입니다. 즉 백업 및 복구 시간을 최소화 하는 것이 해당 됩니다. SQL문을 작성 할 때 최소의 블록 액세스가 일어나게 하여 과다한 IO를 줄이는 것도 튜닝의 목표이며 자원의 경합을 줄이는 것 역시 목표가 되는 겁니다. 즉 waiting 상태를 줄이는 것입니다.

튜닝 프로세스에 대해 정리하면 우선 디자인 튜닝(비즈니스 룰, 데이터 설계)부터 시작하여 애플리케이션 튜닝(SQL 튜닝), 서버 튜닝(인스턴스 튜닝, 메모리 튜닝, IO튜닝, 자원의 경합, 네트웍), 시스템 튜닝(HW 구성요소, 운영체제와 관련) 등으로 구분 연계 됩니다.

이번에는 각각의 튜닝에 대해 자세히 보도록 하죠..

1. 비즈니스 로직 튜닝 : 업무 프로세스에 대한 튜닝
2. 디자인 튜닝 : 데이터베이스의 논리적인 구조(Schema 설계등, 테이블구조, 테이블 크기, 인덱스)에 대한 튜닝
3. 애플리케이션 튜닝 : 데이터베이스 사용자가 실행 한 SQL 문장에 대한 튜닝
4. 서버 튜닝 : 오라클 DBMS 서버에 대한 튜닝으로 서버의 메모리, IO등에 대한 튜닝
5. 시스템 튜닝 : 운영체제(Windows, Unix, Linux)에 대한 성능을 향상하기 위한 튜닝