[1] End-To-End 성능관리
(1) 특징
- 사용자가 느끼는 응답 시간이 성능에서 중요한 부분을 차지한다.
(2) End-To-End 성능관리 툴의 장점
- WEB, AP, DB ZONE 중에서 병목 발생한 구간의 실시간 모니터링이 가능하다.
- 튜닝 대상 서비스와 SQL 목록 식별에 유용하다.
[2] 데이터베이스 성능 고도화 정석 해법
(1) 데이터베이스 문제 해결 절차
- 모니터링 자료수집
- 분석진단
- 튜닝
- 평가
(2) 데이터베이스 성능 튜닝의 3대 핵심 요소
application tuning 관점의 데이터베이스 성능 튜닝의 3대 핵심 요소
- 데이터 모델 및 DB 설계
- 라이브러리 캐시 최적화
- 무거운 파싱과정을 거쳐 캐시에 적재된 SQL 실행계획의 재사용성 증가
- 데이터베이스 CALL 최소화
- I/O 효율화 및 버퍼캐시 최적화
- 인덱스와 조인 원리, 옵티마이저 원리를 기반으로 한 sql 튜닝 포함
- I/O를 최소화 하고, 장기간 버퍼캐시에 적재된 데이터 블록의 재사용 증가
(3) 구조와 튜닝이 성능에 미치는 영향도
데이터 모델 및 DB 설계 >> 애플리케이션 튜닝 >> 데이터베이스 튜닝 >> 시스템 튜닝
(왼쪽이 제일 크고 오른쪽으로 갈수록 작아진다.)
- 영향도 1순위 : 데이터 모델 및 DB 설계
- 업무가 반영된 정규화된 데이터 모델이 바탕
- DBMS의 물리적 특성과 성능을 고려한 설계 변경
✅ DBMS 요소에 대한 설계
- 논리적 모델 : 데이터의 업무적 특성만을 반영한 설계이며 DBMS의 물리적 특성 배제한다.
- 물리적 모델 : DBMS의 물리적 특성과 성능 고려한 설계 변경
- ex) 반정규화, 집계성 테이블 설계, 테이블과 컬럼 정의, PK/FK 정의 등
- DB 설계 : 파티션 설계, 클러스터 및 IOT 구성, 기초 인덱스 설계, 뷰 설계, 시퀀스 설계 등
- 영향도 2순위 : 애플리케이션 성능
- lock 경합, parsing 부하, database call 발생량 최소화
- 인덱스를 설계 조정하거나 SQL을 변경하여 I/O 효율을 향상시킨다.
- 영향도 3순위 : 데이터베이스 튜닝
- init parameter 설정, SGA/PGA 메모리 구성 , redo 파일 구성 , tablespace & datafile 구성 등에 관한 전략을 조정한다.
- 영향도 4순위 : 시스템 성능
- OS level에서 CPU와 메모리 구성, I/O subsystem 구성(파일시스템, 디스크 스트라이핑 등) , 네트워크 설정 같은 하드웨어적인 튜닝을 실시한다.
- 잘못 설계된 모델이 시스템에 미치는 영향
- 비효율적인 액세스 유형을 야기하여 이로 발생된 SQL 성능 문제 해결을 위해 과도한 반정규화를 실시한다.
- 궁극적으로 데이터의 일관성과 품질이 저하되어 이는 곧 기존 데이터에 대한 신뢰성 저하 및 중복 데이터 증가로 이어진다.