Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Chênh lệch hiệu suất truy vấn pl / sql forall chèn và chèn SQL thuần túy

Một số dữ liệu thử nghiệm cho sự cố của bạn (Oracle 9.2)

thu thập số lượng lớn

DECLARE 
  TYPE t_number_table IS TABLE OF NUMBER;
  v_tab t_number_table;
BEGIN
  SELECT ROWNUM
  BULK COLLECT INTO v_tab
  FROM dual
  CONNECT BY LEVEL < 100000;

  FORALL i IN 1..v_tab.COUNT
    INSERT INTO test VALUES (v_tab(i));
END;
/
-- 2.6 sec

chèn

-- test table 
CREATE global TEMPORARY TABLE test (id number)
ON COMMIT preserve ROWS;

BEGIN
  INSERT INTO test
  SELECT ROWNUM FROM dual
  CONNECT BY LEVEL < 100000;
END;
/
-- 1.4 sec

chèn đường dẫn trực tiếp http://download.oracle.com/docs /cd/B10500_01/server.920/a96524/c21dlins.htm

BEGIN
  INSERT /*+ append */ INTO test
  SELECT ROWNUM FROM dual
  CONNECT BY LEVEL < 100000;
END;
/
-- 1.2 sec


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách trích xuất số tháng từ ngày trong Oracle

  2. Lỗi ORA-12638 trong Cơ sở dữ liệu Oracle 11g

  3. thực hiện các phép tính trên dữ liệu trong loại bảng

  4. Excel VBA - Kết nối Oracle DB - Thực thi Truy vấn Cập nhật không hoạt động

  5. Truy vấn con có liên quan hoạt động khác nhau cho Oracle 12c và 11g