투케이2K
47. (DB/데이터베이스) 데이터베이스 튜닝 (Database Tuning) 개념 설명 본문
[학습 구분]
과목 : Database / 데이터베이스
[설 명]
1. 데이터베이스 튜닝 이란 데이터베이스 애플리케이션, 데이터베이스 자체, 운영체제 등의 조정을 통하여 데이터베이스 시스템의 성능을 향상시키는 작업을 의미합니다
2. 데이터베이스 튜닝 은 데이터베이스 애플리케이션이 높은 작업 처리량과 짧은 응답시간을 갖도록 하는 것이 가장 중요한 목표 입니다
3. 데이터베이스 튜닝 목적 :
- 업무 환경과 시스템 환경에 적합하게 데이터베이스 파라미터를 설정한다
- 데이터베이스에 접근하는 SQL 문장의 수행 시 디스크 블록에 대한 접근 횟수가 가능한 최소가 되도록 한다
- 모든 SQL 문장은 공유가 가능하도록 대소문자 등 명명 표준을 준수하여 작성한다
- 락 (lock) 발생을 최소화한다
- 배치 (batch) 작업과 백업 작업 수행이 빠른 시간 안에 완료될 수 있도록 한다
4. 데이터베이스 튜닝 구분 :
- 시스템 영역 : 데이터의 처리 속도에 영향을 미치게 되며 디스크, OS, DBMS 등이 이 영역에 속한다
- 어플리케이션 영역 : 일의 양에 영향을 미치게 되는데, 일의 양을 결정하는 요소로는 업무 데이터 량, 데이터 설계, 어플리케이션 설계, 로직, 스키마 설계, SQL 등이 있다
5. 데이터베이스 튜닝의 단계 :
[가]. [비즈니스 규칙 튜닝] : 최적의 성능을 위해서는 비즈니스 규칙에 대한 적절한 조정은 필수적인데, 이것은 전체 시스템의 설계와 구현에 대한 고수준 분석에 기반해야 한다. 실제로 DBA들이 직면한 성능 문제들은 실제로 시스템의 설계와 구현에 대한 정확하지 않은 분석이나 부적절한 비즈니스 규칙에 의해 유발된다. 특히, 비즈니스 규칙은 많은 동시 사용자 들이 존재하는 환경에 근거한 현실적인 기대치를 고려해야 한다.
[나]. [데이터 설계 튜닝] : 데이터 설계 단계에서는 구현된 응용 어플리케이션에서 필요한 데이터가 무엇인지 정확히 파악해야 한다. 그리고, 어떤 관계들이 중요하며 어떠한 속성들이 존재해야 하는지도 잘 파악해야 한다. 이러한 기반 위에서 최적의 성능을 위해 정보의 구조화 작업이 필요하다. 또한, 성능 개선을 위한 정규화나 비정규화 단계의 작업이 필요하 며, 데이터의 경합을 최대한 피할 수 있는 작업도 필요하다.
[다]. [어플리케이션 설계 튜닝] : 어플리케이션은 구현 목적에 맞게 효과적으로 각각의 프로세스를 구성해야 하는 데, 같은 시스템을 액세스하는 어플리케이션이라도 구현 목적에 따라 상이한 설계가 가능하다. 그러므로, 각 프로세스의 성능을 조사하여 부하가 발생하는 시점의 해당 어플리케이션 수행에 필요한 시간 및 필요로 하는 데이터들을 조사한다. 그리고, 튜 닝을 필요로 하는 대상 어플리케이션을 선정하고, 선정된 어플리케이션을 위주로 집 중적인 튜닝을 수행한다.
[라]. [데이터베이스의 논리적 구조 튜닝] : 데이터베이스의 논리적 구조는 데이터베이스 스키마에 의해 정의된다. 이 단계에 서의 핵심은 작업부하로 예상되는 질의와 갱신을 고려하여 스키마를 작성함으로써 데이터베이스 시스템 성능을 향상시키는 데이터베이스 논리적 구조를 생성하는 것 이다.
[마]. [데이터베이스 접근 방식 튜닝] : 최상의 시스템 성능을 위하여 SQL의 장점과 어플리케이션의 작업처리를 최대화시 키기 위해 보유하고 있는 DBMS의 기능을 충분히 활용하고 있는지를 검증한다.
[바]. [액세스 경로 튜닝] : 효과적인 데이터 액세스를 위하여 트리 인덱스, 비트맵 인덱스, 클러스터, 해시 클 러스터 등의 사용을 고려한다. 또한, 어플리케이션 테스트 단계를 거치면서 원하는 응답속도를 얻기 위해서 인덱스의 추가 및 삭제는 물론 설계의 개선도 고려되어야 한다.
[사]. [메모리 운영 튜닝] : 성능 개선에 긍정적인 효과를 가져올 수 있도록 메모리 자원을 효율적으로 할당하 여 캐시의 성능을 개선하고 SQL 문장의 파싱 작업을 감소시켜야 한다.
[아]. [물리적 구조 및 입출력 튜닝] : 디스크 입출력 성능은 많은 어플리케이션들의 성능을 저하시키는 주된 원인이 되 므로 디스크간에 데이터를 분산하여 입출력 경합을 감소시키고, 또한 최소의 액세스 비용을 위한 효율적인 데이터 블록 운영도 고려하여 튜닝한다.
[자]. [자원의 경합에 대한 튜닝] : 다수의 사용자가 동일한 자원에 대해 동시에 액세스를 원하는 운영 환경에서 자원 에 대한 경합의 유발은 불가피하지만 블록, 공유 풀, 락 등의 경합 형태를 감소시키 기 위한 노력을 계속하여야 한다.
[차]. [H/W 시스템에 특화된 부분의 튜닝] : 데이터베이스는 사용되는 H/W 시스템의 종류와 특성에 따라서 성능의 차이가 생 긴다. 그러므로, 사용 중인 H/W 시스템 플랫폼에 특화된 부분에 대한 튜닝 방안을 강구해야 한다.
'DataBase' 카테고리의 다른 글
49. (DB/데이터베이스) Oracle SQL Developer (SQL 디벨로퍼) DBMS 설명 (0) | 2022.11.29 |
---|---|
48. (DB/데이터베이스) SQL Server (SQL 서버) DBMS 설명 (0) | 2022.11.29 |
46. (DB/데이터베이스) 데이터베이스 실행 계획 (action plan) 설명 (0) | 2022.11.28 |
45. (DB/데이터베이스) BLOB (블랍) 데이터 타입 개념 설명 (0) | 2022.11.28 |
44. (DB/데이터베이스) 토드 (Toad) 툴 개념 설명 (0) | 2022.11.28 |