Refigo Blog

<오라클 성능 고도화 원리와 해법2> Ch04-10 실체화 뷰 쿼리로 재작성

오라클 성능 고도화 원리와 해법2 - Ch04-10 실체화 뷰 쿼리로 재작성 일반적인 뷰는 주로 하나 또는 그 이상의 테이블에 기초하여 논리적으로 정의한 테이블로서, ‘저장된 쿼리’ 또는 가상의 테이블이라고 불린다. 테이블이 사용될 수 있는 대부분 위치에 뷰를 사용할 수 있고, 뷰에 기초해 또 다른 뷰를 생성할 수도 있다. 정의에서도 알 수 있듯이...

<오라클 성능 고도화 원리와 해법2> Ch04-09 Outer 조인을 Inner 조인으로 변환

오라클 성능 고도화 원리와 해법2 - Ch04-09 Outer 조인을 Inner 조인으로 변환 Outer 조인을 작성할 때 일부 조건절에 Outer 기호(+)를 빠뜨리면 Inner 조인할 때와 같은 결과가 나온다. 이럴 때 옵티마이저는 Outer 조인을 Inner 조인으로 바꾸는 쿼리 변환을 실행한다. 옵티마이저가 이러한 쿼리 변환을 하는 이유는 ...

<오라클 성능 고도화 원리와 해법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...