Come posso inserire più di un milione di righe in Oracle in modo ottimale per la seguente procedura? Si blocca se aumento il ciclo FOR su un milione di righe.Il modo più veloce per inserire un milione di righe in Oracle
create or replace procedure inst_prc1 as
xssn number;
xcount number;
l_start Number;
l_end Number;
cursor c1 is select max(ssn)S1 from dtr_debtors1;
Begin
l_start := DBMS_UTILITY.GET_TIME;
FOR I IN 1..10000 LOOP
For C1_REC IN C1 Loop
insert into dtr_debtors1(SSN) values (C1_REC.S1+1);
End loop;
END LOOP;
commit;
l_end := DBMS_UTILITY.GET_TIME;
DBMS_OUTPUT.PUT_LINE('The Procedure Start Time is '||l_start);
DBMS_OUTPUT.PUT_LINE('The Procedure End Time is '||l_end);
End inst_prc1;
Non mi consiglia di utilizzare il cursore per questo. Come il cursore diminuirà la tua performance. –
Controlla questo [collegamento] (http://www.orafaq.com/wiki/Oracle_Row_Generator_Techniques) – haki