Oracle Exadata로 UPDATE 또는 DELETE하고 싶은 경우의 고속화 방법
파티셔닝되고 있는 테이블이라면, 아래의 EXCHANGE를 사용한 방법에 의해 그것들을 고속화하는 것이 가능합니다.
예를 들어, 아래와 같은 파티셔닝되고 있는 테이블이 있어, 그 파티션내의 일부 데이터를 DELETE 하고 싶은 경우를 상정.
우선 대상 파티션의 건수 확인
SELECT COUNT(1) FROM SAMPLE_SCHEMA.HOGE_TABLE PARTITION(P_201902);
+-----------+
| COUNT(1) |
+-----------+
| 5 |
+-----------+
CTAS에서 교환을 위한 임시 테이블 생성. 이 때 DELETE하고 싶은 데이터를 임시 테이블에 넣지 않도록 SELECT.
CREATE TABLE SAMPLE_SCHEMA.TMP_TABLE
AS
SELECT *
FROM SAMPLE_SCHEMA.HOGE_TABLE PARTITION(P_201902)
WHERE ID != "0003"
;
임시 테이블의 건수 확인
SELECT COUNT(1) FROM SAMPLE_SCHEMA.TMP_TABLE;
+-----------+
| COUNT(1) |
+-----------+
| 4 |
+-----------+
EXCHANGE로 파티션 교환
ALTER TABLE SAMPLE_SCHEMA.HOGE_TABLE EXCHANGE PARTITION P_201902
WITH TABLE SAMPLE_SCHEMA.TMP_TABLE;
대상 파티션 수를 확인하고 교체되었는지 확인합니다.
SELECT COUNT(1) FROM SAMPLE_SCHEMA.HOGE_TABLE PARTITION(P_201902);
+-----------+
| COUNT(1) |
+-----------+
| 4 |
+-----------+
Reference
이 문제에 관하여(Oracle Exadata로 UPDATE 또는 DELETE하고 싶은 경우의 고속화 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/toshi772/items/900dc3bd572b17810be5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)