반응형
-
튜닝의 정의
- 특정한 응용을 시스템 성능을 향상시키기 위해 다양한 파라미터들과 설계 선택들을 조정하는 것
- 데이터베이스 응용 프로그램, 데이터베이스 자체, 운영체계 등의 조정을 통해 데이터베이스 관리 시스템의 성능을 향상시키는 작업
-
병목 현상을 찾아서 제거함으로써 튜닝을 잘 수행할 수 있음
-
튜닝의 기대 효과
- 작업 처리량과 응답 속도의 향상
- 장재적인 시스템 장애 방지
- 유지보수 비용 절감
- 하드웨어 증설에 대한 투자비 절감
-
개발자 능력 향상
-
튜닝의 목표
-
데이터베이스에 접근하는 SQL문의 실행 시 디스크 블록에 대한 접근 횟수를 최소화데이터가 포함된 디스크를 적절히 분산시켜 디스크 입.출력이 집중되는 것을 막음
-
디스크 블록에서 한 번 읽어온 데이터는 가능하면 메모리 영역에 보관하여 다시 그 데이터가 필요할때 메모리에서 신속히 가져오게 함
- 데이터를 디스크로부터 메모리로 로드하여 가져오는 것에 비해, 메모리에서 데이터를 직접 읽어오는 것이 훨씬 빠르기 때문에 캐시(Cache) 용량을 충분히 확보
-
모든 SQL문은 공유가 가능하도록 대소문자 일치 등의 명명 표준을 준수하여 작성처음 실행된 SQL문은 구문 검사, 실행 권한 검사와 같은 내부 파싱 절차를 거쳐 명명 규칙을 준수함으로써, 이러한 연산을 줄임
-
여러 명의 사용자가 자원들을 안정적으로 접근할 수 있도록 허용하기 위한 잠금 기능의 사용을 최소화잠금이 최소한으로 발생하도록 트랜잭션을 분산시키는 방법을 사용
-
-
튜닝의 3단계
-
하드웨어I/O 속도를 빠르게 하기 위한 디스크 추가, 버퍼 히트를 향상시키기 위한 메모리 추가, 보다 빠른 프로세서로의 교체 등
-
데이터베이스 시스템 파라미터
- 버퍼의 페이징을 피하기 위해 버퍼 크기 설정, 로그 크기를 제한하기 위해 체크포인팅 간격 설정 등
- 시스템이 자동적으로 튜닝을 수헹할 수 있음
-
상위 수준 데이터베이스 설계스키마, 인덱스, 트랜잭션 등의 설계
-
-
튜닝의 주요 기법
-
접근 경로SQL의 접근 경로를 분석하여 이후 튜닝 기법의 기본 자료로 활용
-
인덱스
- 접근 경로 조사 후 성능이 효과적인 인덱스를 설정
-
인덱스 설정 기준
- SQL 조건문에 자주 등장하는 속성
- 같은 값이 적은 속성(분포도가 10% 이하인 속성)
- 조인에 참여하는 속성이나 값의 변경이 자주 일어나지 않는 속성
- 적절한 기본키 및 외래키(조인의 연결 고리가 되는 속성) 선정
- 분포도가 좋은 속성은 단독적으로 생성하여 활용도 향상
- 자주 조합되어 사용되는 속성의 경우는 결합 인덱스 생성
- 결합 인덱스의 속성 순서 선정은 DBMS에 따라 SQL 조건문의 검색 순서에 입각
- 각종 접근 가능한 경우의 수를 만족할 수 있도록 인덱스간의 역할 분담
-
조인데이터 분포 및 데이터 양에 따른 조인 전력 수립 및 적용
-
클러스터정해진 속성을 기준으로 동일한 값을 가진 레코드를 같은 블록에서 저장하여 I/O를 최소화 하는 방법
-
부분 범위 스캔(Partial Range Scan)주어진 모든 데이터를 처리하지 않고 일부만 처리하여 그 결과를 사용함으로써 수행 시간이 단축됨
-
-
클러스터드 인덱스(Clustered Index)
- 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식
- 실제 데이터가 순서대로 저장되어 있어 인덱스를 검색하지 않아도 원하는 데이터를 빠르게 찾을 수 있음
- 데이터 삽입, 삭제 발생 시 데이터 순서를 유지하기 위해 데이터를 재정렬해야 함
- 릴레이션 당 하나의 크럴스터드 인덱스만 생성 가능
-
비클러스터드 인덱스(Non-Clustered Index)
- 인덱스 키만 정렬되어 있을 뿐, 실제 데이터는 정렬되지 않는 방식
- 데이터를 검색하기 위해 먼저 인덱스를 검색하여 실제 데이터의 위치를 확인해야 하므로, 클러스터드 인덱스에 비해 검색 속도가 떨어짐
- 릴레이션 당 다수의 비클러스터드 인덱스만 생성 가능
-
결합 인덱스
- 한 릴레이션 내에 존재하는 여러 속성들을 묶어 하나의 인덱스로 만든 것
- 결합 인덱스 내에서는 검색 속도에 영향을 미치는 선행 속성의 선정이 중요
- 선생 속성은 WHERE 절에서 항상 사용되고, '=' 로 비교되어야 하며, 분포도가 좋은 속성을 우선적으로 선택
- 결합 인덱스를 사용하면 데이터의 분포도가 좋아져 검색 성능이 향상
반응형
'밥벌이 > 데이터베이스' 카테고리의 다른 글
튜닝의 타입 (0) | 2011.03.11 |
---|---|
튜닝의 종류 (0) | 2011.03.11 |
성능 평가(Benchmarks) (0) | 2011.03.11 |
데이터베이스 회복의 개요 (0) | 2011.03.10 |
데이터베이스 회복기법 (0) | 2011.03.10 |