Din tilgang vil føre til hukommelsesproblemer. Den hurtigste måde vil være denne [Forespørgsel redigeret efter Davids kommentar for at tage sig af et nulscenarie] :
insert into dtr_debtors1(SSN)
select a.S1+level
from dual,(select nvl(max(ssn),0) S1 from dtr_debtors1) a
connect by level <= 10000
En select insert er den hurtigste tilgang, da alt forbliver i RAM. Denne forespørgsel kan blive langsom, hvis den glider ind i det globale temperaturområde, men det skal så DB-tuning. Jeg tror ikke, der kan være noget hurtigere end dette.
Lidt flere detaljer om hukommelsesbrug af Query:
Hver forespørgsel vil have sin egen PGA [Program global area], som grundlæggende er RAM tilgængelig for hver forespørgsel. Hvis dette område ikke er tilstrækkeligt til at returnere forespørgselsresultater, begynder SQL-motoren at bruge Golabl temp tablespace, som er ligesom harddisk, og forespørgslen begynder at blive langsom. Hvis de data, der kræves af forespørgslen, er så store, at selv temperaturområdet ikke er tilstrækkeligt, vil du få en tablespace-fejl.
Så design altid en forespørgsel, så den forbliver i PGA, ellers er det et rødt flag.