2010-11-24 4 views
11

인가가보다 더 효율적인 방법 : 당신이 쿼리에서 파티션 (partitionN) 구문을 사용하는 것이 매우 드문해야여러 파티션에서 SQL을 선택하는 방법은 무엇입니까?

select * from transactions partition(partition1) 
union all 
select * from transactions partition(partition2) 
union all 
select * from transactions partition(partition3); 
+2

이 경우 효율적인 의미는 무엇입니까? 적은 타이핑? 더 빠른 결과? – EvilTeach

+0

빠른 결과. – Yusufk

답변

14

.

일반적으로 파티션 키의 값을 지정하고 Oracle에서 파티션 제거를 수행하기 만하면됩니다. 테이블 매일 예를 들어, TRANSACTION_DATE을 기반으로 파티션 된 경우

SELECT * 
    FROM transactions 
WHERE transaction_date IN (date '2010-11-22', 
          date '2010-11-23', 
          date '2010-11-24') 

모든 오늘날의 파티션에서 데이터, 어제의 파티션, 하루의 전에 파티션을 선택합니다.

+0

오라클이 관련 파티션에 대한 검색을 제한한다는 것은 확실하지 않았습니다. 나는 거대한 테이블을 가지고 있는데, 매시간 분할 된 데이터를 쿼리해야한다. 감사 – Yusufk

-1

추가 컨텍스트를 제공 할 수 있습니까? 당신의 술어는 무엇입니까? 최적화 프로그램에 여러 파티션에 대해 명시 적으로 알릴 필요가 있다고 생각하게 만듭니다. 잘못된 파티션 키가 사용 중일 수 있습니다.

관련 문제