본문 바로가기

SQL튜닝11

SQL튜닝 - Chpater07. SQL옵티마이저 7.1 선택도와 카디널리티 선택도(Selectivity)란, 전체 레코드 중에서 조건절에 의해 선택되는 레코드 비율 선택도 구하는 공식 선택도 = 1 / NDV 카디널리티(Cardinality)란, 전체 레코드 중에서 조건절에 의해 선택되는 레코드 개수. 카디널리티 구하는 공식 카디널리티 = 총 로우 수 * 선택도 = 총 로우수 / NDV 7.2 통계정보 통계정보에는 오브젝트 통계와 시스템 통계 오브젝트 통계는 테이블 통계, 인덱스 통계, 컬럼 통계로 나뉜다 시스템 통계 : 애플리케이션 및 하드웨어 성능 특성을 측정한 것. 아래 항목들을 포함한다 - CPU 속도 - 평균적인 Single Block I/O 속도 - 평균적인 Multiblock I/O 속도 - 평균적인 Multiblock I/O 개수 - I.. 2023. 8. 26.
SQL튜닝 - Chapter06.DML 튜닝 DML 성능에 영향을미치는 요소 ( DML : Insert + Delete + Update ) - 인덱스 - 무결성 제약 - 조건절 - 서브쿼리 - Redo 로깅 - Undo 로깅 - Lock - 커밋 테이블에 레코드를 입력하면, 인덱스에도 입력. 테이블은 Freelist를 통해 입력 더보기 Freelist : 테이블마다 데이터 입력이 가능한(여유 공간이 있는) 블록 목록을 관리 인덱스 개수가 DML 성능에 미치는 영향이 매우 큰 만큼, 인덱스 설계에 심혈을 기울여야 한다. 핵심 트랜잭션 테이블에서 인덱스 하나라도 줄이면 TPS(Transcation Per Second)는 그만큼 향상된다. 무결성 제약과 DML 성능 데이터베이스에 논리적으로 의미 있는 자료만 저장되게 하는 데이터 무결성 규칙으로는 네 가.. 2023. 8. 23.
SQL튜닝 - Chapter05. 소트 튜닝 소트 수행 과정 소트는 기본적으로 PGA에 할당한 Sort Area에서 이루어진다 . Sort Area가 다 차면 디스크 Temp 테이블 스페이스를 활용한다. Sort Area에서 작업을 완료할 수 있는지에 따라 소트를 두 가지 유형으로 나뉨 메모리 소트(In - Memory Sort ) : 전체 데이터의 정렬 작업을 메모리 내에서 완료하는 것을 말하며, 'Internal Sort' 라고도 한다. 디스크 소트(To - Disk Sort ) : 할당받은 Sort Area 내에서 정렬을 완료하지 못해 디스크 공간까지 사용하는 경우를 말하며, 'External Sort' 라고도 한다. 소트 연산은 메모리 집약적 ( Memory - intensive ) 일 뿐만 아니라 CPU 집약적 ( CPU - intensi.. 2023. 8. 22.
SQL튜닝 -Chapter04.조인튜닝 -4- 서브퀴리 조인 옵티마이저가 서브쿼리에 대해 다양한 형태로 쿼리 변환을 시도하므로 서브쿼리 조인을 이해하는 출발점은 쿼리 변환에서 찾아야 한다. 쿼리 변환(Query Transformation) : 비용을 평가하고 실행계획을 생성하기에 앞서 사용자로부터 전달받은 SQL을 최적화에 유리한 형태로 변환하는 작업. 옵티마이저가 SQL을 분석해 의미적으로 동일하면서도 더 나은 성능이 기대되는 형태로 재작성 하는 것. 서브쿼리 변환이 필요한 이유 하나의 결과집합을 얻기 위해 SQL을 여러 가지 다른 형태로 표현할 수 있고, 어떤 것을 선택하느냐에 따라 성능도 다를 수 있기 때문이다. 서브쿼리는(Subquery)는 하나의 SQL문 안에 괄호로 묶은 별도의 쿼리 블록을 말한다. DBMS마다 조금씩 다르게 분류하는데 오라클은 세 가지.. 2023. 8. 22.