Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zapytanie o różnicę wydajności pl/sql dla wstawiania i zwykłego wstawiania SQL

Niektóre dane eksperymentalne dotyczące Twojego problemu (Oracle 9.2)

zbieranie zbiorcze

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

wstaw

-- 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

bezpośrednie wstawianie ścieżki 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. Zadanie SQL Agent — połączenie może nie być poprawnie skonfigurowane lub nie masz odpowiednich uprawnień do tego połączenia?

  2. Jak załadować plik JAR do bazy danych Oracle?

  3. Pobieranie próbek z Oracle, Potrzebujesz dokładnej liczby wyników (klauzula przykładowa)

  4. Wiersz z najnowszą wartością według klienta i miesiąca

  5. jBPM 6.5 + Tomcat 8 + Transakcja Bitronix + konfiguracja Oracle 11G | Nie można zatwierdzić sesji java.lang.NullPointerException