에서 전체 SQL을 쓰는 것보다 내가 3 개 테이블 (A, B, C)가 뷰를 사용하고 난 그냥 생각하고은 빠르거나 느린 단지 처음
A inner join B
union
A inner join C
의 결과를 조회 할 수 매우 자주 필요 어떤 방법이 더 빨리 될 것입니다 :
처음
에서 각 쿼리에을 전체를 작성하는 뷰를 생성하고 쿼리
에서 사용하기
에서 전체 SQL을 쓰는 것보다 내가 3 개 테이블 (A, B, C)가 뷰를 사용하고 난 그냥 생각하고은 빠르거나 느린 단지 처음
A inner join B
union
A inner join C
의 결과를 조회 할 수 매우 자주 필요 어떤 방법이 더 빨리 될 것입니다 :
처음
에서 각 쿼리에을 전체를 작성하는 뷰를 생성하고 쿼리
뷰에 집계가 없으면 뷰를 사용하는 것이 원시 SQL을 사용하는 것과 완전히 동일합니다. 집계가 없다는 것은 where 절이 옵티마이 저가 통계에 기초하여 최적이라고 간주하는 뷰에 '내부적으로'적용될 수 있음을 의미합니다. (이것은 뷰 내에서 where 절을 '푸시 (push)'라고 종종 부른다고 생각합니다.)
일반적으로보기는 SQL의 저장된 버전이 아니며이 경우에는 아니오입니다. 그러나 인덱싱 된 뷰를 사용하면 특히 집계와 관련하여 이점을 얻을 수 있습니다. 인덱스 된 제한된 뷰에는 1 개의 제한이 있습니다. union
은 허용되지 않습니다.
엔터프라이즈를 실행하지 않는 경우 판을 사용하려면 이점을 얻기 위해 인덱스 된 뷰와 함께 NOEXPAND 힌트를 사용해야합니다. –