Refigo Blog

<오라클 성능 고도화 원리와 해법2> Ch04-08 공통 표현식 제거

오라클 성능 고도화 원리와 해법2 - Ch04-08 공통 표현식 제거 같은 조건식이 여러 곳에서 반복 사용될 경우, 오라클은 해당 조건식이 각 로우당 한 번씩만 평가되도록 쿼리를 변환한다. 이를 ‘공통 표현식 제거’라고 하며, _eliminate common_subexpr 파라미터를 통해 제어한다. 예를 들어, 위와 같이 deptno에 대한 조인 ...

<오라클 성능 고도화 원리와 해법2> Ch04-06 조인 제거

오라클 성능 고도화 원리와 해법2 - Ch04-06 조인 제거 1:M 관계인 두 테이블을 조인하는 쿼리문에서 조인문을 제외한 어디에서도 1쪽 테이블을 참조하지 않는다면, 쿼리 수행 시 1쪽 테이블은 읽지 않아도 된다. 결과 집합에 영향을 미치지 않기 때문이다. 옵티마이저는 이 특성을 이용해 M쪽 테이블만 읽도록 쿼리를 변환하는데, 이를 ‘조인 제거(...

<오라클 성능 고도화 원리와 해법2> Ch04-02 서브쿼리 Unnesting

오라클 성능 고도화 원리와 해법2 - Ch04-02 서브쿼리 Unnesting (1) 서브쿼리의 분류 서브쿼리는 SQL 문장 내에서 괄호로 묶인 별도의 쿼리 블록을 의미한다. 즉, 쿼리에 내장된 또 다른 쿼리다. 서브쿼리를 DBMS마다 조금씩 다르게 분류하는데, 오라클 매뉴얼에는 아래 3가지로 분류된다. 인라인뷰(InlineView): FR...

<오라클 성능 고도화 원리와 해법2> Ch03-08 통계정보 2

오라클 성능 고도화 원리와 해법2 - Ch03-08 통계정보 2 (1) 전략적인 통계수집 정책의 중요성 지금까지 설명한 카디널리티와 비용 계산식의 세부 사항을 항상 기억할 필요는 없다. 다만, 그 원리를 이해함으로써 통계정보 수집이 얼마나 중요한지 깨닫는 것이 매우 중요하다. 4절 ‘통계정보 1’에서 개발자를 대상으로 통계정보의 기본 개념을 설명...

<오라클 성능 고도화 원리와 해법2> Ch03-07 비용

오라클 성능 고도화 원리와 해법2 - Ch03-07 비용 오라클 옵티마이저가 사용하는 비용 모델에는 I/O 비용 모델과 CPU 비용 모델 두 가지가 있다. I/O 비용 모델은 예상되는 I/O 요청(Call) 횟수만을 쿼리 수행 비용으로 간주해 실행 계획을 평가하는 반면 CPU 비용 모델은 여기에 시간 개념을 더해 비용을 산정한다. 비용 모델을 선택...