← 질문 목록
#271깊이 0

뷰 쿼리의 성능 저하는 무엇을 확인해야 하는가?

데이터베이스깊이인덱스·질의

뷰나 인라인 뷰 작성 시 가장 주의할 점은 옵티마이저의 뷰 병합 실패로 인한 성능 저하다.

구분뷰 병합 (Merging)뷰 미병합 (Materialization)
처리 방식메인 쿼리와 통합 실행결과를 임시 테이블로 구체화
인덱스 사용원본 표의 인덱스가 후보가 된다DBMS에 따라 임시 인덱스를 만들기도 한다

옵티마이저가 뷰를 병합하지 못하면 별도 쿼리 블록으로 처리하고, 계획에 따라 구체화하기도 한다. 병합과 푸시다운은 별개라 병합에 실패해도 조건이 뷰 안으로 전달될 수 있다.

GROUP BY나 DISTINCT가 들어간 뷰는 병합이 어렵다. 뷰 결과를 먼저 만들며, 집계가 크거나 디스크로 흘리면 부담이 늘어난다.

뷰 외부 조건이 내부로 전달되는지 확인한다. 조건 절 푸시다운에 실패하면 뷰 전체를 가져온 뒤 필터링한다.

필요 이상으로 많은 테이블을 조인한 뷰를 피한다. 조인 제거 조건을 못 맞추면 일부 컬럼만 필요해도 내부 조인이 그대로 남는다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

뷰 쿼리의 성능 저하는 무엇을 확인해야 하는가?