다른 명령
동일 테이블에 병렬로 입력 하는 방법
- Oracle에서 파티션 테이블을 이용하여 데이터를 병렬로 입력하는 방법
- 파티션 테이블은 데이터를 물리적 또는 논리적 파티션으로 분할한 테이블입니다.
- 아래 예시에서 INSERT INTO ... SELECT 문을 사용하여 병렬로 데이터를 입력하는 방법을 보여줍니다.
-- 파티션 테이블 생성 CREATE TABLE sales ( sale_id NUMBER, sale_date DATE, product_id NUMBER, quantity NUMBER ) PARTITION BY RANGE (sale_date) ( PARTITION sales_202301 VALUES LESS THAN (TO_DATE('2023-02-01', 'YYYY-MM-DD')), PARTITION sales_202302 VALUES LESS THAN (TO_DATE('2023-03-01', 'YYYY-MM-DD')) ); -- 병렬로 데이터 입력 -- 세션 1에서 데이터 입력 ALTER SESSION ENABLE PARALLEL DML; INSERT /*+ APPEND PARALLEL(sales, 4) */ INTO sales SELECT sale_id, TO_DATE('2023-01-15', 'YYYY-MM-DD'), product_id, quantity FROM sales_data_january; commit; -- 커밋을 해야 다른세션에서도 커밋이 가능하다 -- 세션 2에서 데이터 입력 ALTER SESSION ENABLE PARALLEL DML; INSERT /*+ APPEND PARALLEL(sales, 4) */ INTO sales SELECT sale_id, TO_DATE('2023-02-15', 'YYYY-MM-DD'), product_id, quantity FROM sales_data_february; commit;
- ORA-12838 : 병렬로 수정한 후 객체를 읽거나 수정할 수 없습니다. 오류 발생시 커밋 여부를 확인할것. 같은 세션에서도 커밋하지 않으면 조회도 불가능하다.