반응형
Oracle SQL에서 전체 테이블이 아닌 테이블의 파티션을 쿼리하여 더 빠르게 실행할 수 있습니까?
7-24-2016년에 기록이 있는 'FooBar'라는 고객을 대상으로 100만 건의 기록이 있는 표를 문의하고자 합니다.그 표에는 10일간의 자료가 들어있습니다.
select *
from table
where customer = 'FooBar'
and insert_date between to_date('2016-07-24 00:00:00', 'YYYY-MM-DD HH24:MI:SS') and to_date('2016-07-24 23:59:59', 'YYYY-MM-DD HH24:MI:SS');
위 쿼리의 문제점은 실행하는 데 시간이 오래 걸린다는 것입니다.좀 더 빨리 달리면 좋겠습니다.
그 테이블은 24시간으로 나누어져 있습니다.테이블 파티션에 쿼리의 초점을 맞출 수 있을까요?그러면 쿼리 실행 속도가 더 빨라질까요?
select *
from partition-7-24-2016
where customer = 'FooBar';
정확한 구문은select [columns] from [table] partition ([partition])
. 그렇다면, 이 사용 사례에서는 다음과 같은 것이 있습니다.
SELECT *
FROM mytable PARTITION (partition_7_24_2016)
WHERE customer = 'FooBar';
이렇게 할 수 있습니다.
select * from table PARTITION FOR (date '2016-07-24') where customer = 'FooBar'
and insert_date between to_date('2016-07-24 00:00:00', 'YYYY-MM-DD HH24:MI:SS') and to_date('2016-07-24 23:59:59', 'YYYY-MM-DD HH24:MI:SS');
이렇게 하면 파티션에서 날짜가 다음에 해당하는 행만 찾습니다.date '2016-07-24'
이 예에서는
괄호 안에 파티션 값을 입력해야 합니다.또한 색인을 작성한 경우에는 로컬인지 확인하고, 그렇지 않은 경우에는 테이블 자체에서 선택하는 것보다 크게 개선되지 않습니다.
언급URL : https://stackoverflow.com/questions/38578004/in-oracle-sql-can-i-query-a-partition-of-a-table-instead-of-an-entire-table-to
반응형
'programing' 카테고리의 다른 글
mysql에서 where and inner join을 사용합니다. (0) | 2023.10.09 |
---|---|
Oracle SQL Developer에 시간 및 분 단위로 날짜를 입력하고 표시하는 방법은 무엇입니까? (0) | 2023.10.09 |
Python Pandas - 여러 테이블이 포함된 csv 파일 읽기 (0) | 2023.10.09 |
OpenSSL을 사용하여 RSA 개인 키를 생성하는 방법은 무엇입니까? (0) | 2023.10.04 |
마리아에서 달력 약속 처리 방법DB (0) | 2023.10.04 |