Oracle 데이터베이스의 효율적인 데이터 일괄 삽입 방법
오라클 데이터베이스에 여러 데이터 행을 삽입하는 방법에는 여러 가지가 있습니다. MySQL에서 일반적으로 사용되는 일괄 삽입 방식은 Oracle에서 직접 지원되지 않습니다.
INSERT ALL 문 사용
Oracle에서는 INSERT ALL
문을 사용하여 일괄 삽입할 수 있습니다. 이 문에는 여러 INTO
절이 포함되어 있으며, 각 절은 삽입할 데이터 행을 나타냅니다. 명령문은 삽입 끝을 나타내는 SELECT 1 FROM DUAL
으로 끝납니다.
<code class="language-sql">INSERT ALL INTO t (col1, col2, col3) VALUES ('val1_1', 'val1_2', 'val1_3') INTO t (col1, col2, col3) VALUES ('val2_1', 'val2_2', 'val2_3') INTO t (col1, col2, col3) VALUES ('val3_1', 'val3_2', 'val3_3') . . . SELECT 1 FROM DUAL;</code>
Oracle 23c 단순화된 구문
Oracle 23c에는 INSERT ALL
문이 필요 없는 단순화된 대량 삽입 구문이 도입되었습니다. 다음과 같이 쉼표로 구분된 목록을 사용하여 여러 행의 데이터를 삽입할 수 있습니다.
<code class="language-sql">INSERT INTO t(col1, col2, col3) VALUES ('val1_1', 'val1_2', 'val1_3'), ('val2_1', 'val2_2', 'val2_3'), ('val3_1', 'val3_2', 'val3_3');</code>
성능 고려 사항
데이터 양이 많은 경우 성능 문제를 고려해야 합니다. Oracle 23c의 새로운 INSERT 구문은 INSERT ALL
보다 훨씬 빠르며 UNION ALL
메서드와 비슷한 성능을 제공합니다. 그러나 한 번에 약 1000행 이상의 데이터를 삽입하면 구문 분석 시간이 기하급수적으로 늘어납니다.
위 내용은 Oracle 데이터베이스에 여러 행을 효율적으로 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!