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