Coba dulu dengan hint append insert /*+ append */ into X select * from Y;
Kelebihannya: jumlah undo/rollback yg dihasilkan minimal, dan index baru direbuild setelah semua data di-insert. Cara lain utk mempercepat adalah dengan menggunakan parallel dml dan/atau query. Tapi utk mendapatkan hasil yg bagus mesti didukung oleh i/o dan cpu. regards, tomi --- joey <[EMAIL PROTECTED]> wrote: > hi semua, sebelumnya saya minta maaf kalo mungkin > pertanyaan saya ini > pernah diulas, tapi saya agak susah searchingnya, > jadi saya mau tanya > aja lagi. > > Langsung aja, bagaimana cara memasukkan data dari > table besar(+/- 2jt > rec) ke suatu tabel besar juga dengan cepat? > > Gambarannya : > Y -> 2.000.000 > X -> 20.000.000 > Y dan X adalah 2 tabel dengan struktur yang sama > persis. > X mempunyai banyak index. > > Saya udah coba dengan cara konvensional: > insert into X select * from Y; > tapi memakan waktu sangat lama.(+ 4jam) > > Alternatif lain, saya buat prosedure memasukkan data > tersebut > menggunakan metode bulk insert. (oracle saya 9i > release 1) > Kira2 prosedurnya seperti berikut : > > create or replace procedure masukkan_tabel > is > type klm1_tab is table of y.klm1%type; > type klm2_tab is table of y.klm2%type; > ... > > t_klm1 klm1_tab; > t_klm2 klm2_tab; > ... > > cursor c1 is select * from y; > begin > open c1; > loop > fetch c1 bulk collect into > t_klm1, > t_klm2, > ... > limit 10000; > forall indx in t_klm1.first..t_klm2.last > insert into x (klm1,klm2,...) values > (t_klm1(indx), > t_klm2(indx), > ...); > commit; > exit when c1%notfound; > end loop; > close c1; > end; > > Tapi prosedur tersebut masih memakan waktu 1,5-2 jam > juga. > Pertanyaan saya, apa yang salah dengan prosedur > saya? atau apakah ada > cara yang lebih baik agar proses insertnya lebih > cepat? > Sebagai catatan, waktu yang saya dapat adalah proses > insert tanpa > menghapus index2 yang ada di tabel target. > > Mohon pencerahannya. > Thx > Joey > > > > > > > -- > -----------I.N.D.O - O.R.A.C.L.E--------------- > Keluar: [EMAIL PROTECTED] > Website: http://indo-oracle.blogspot.com > Mirror: http://indooracle.wordpress.com > ----------------------------------------------- > > Bergabung dengan Indonesia Thin Client User Groups, > Terminal Server, Citrix, New Moon Caneveral, di: > http://indo-thin.blogspot.com > Yahoo! Groups Links > > > > > > > > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com -- -----------I.N.D.O - O.R.A.C.L.E--------------- Keluar: [EMAIL PROTECTED] Website: http://indo-oracle.blogspot.com Mirror: http://indooracle.wordpress.com ----------------------------------------------- Bergabung dengan Indonesia Thin Client User Groups, Terminal Server, Citrix, New Moon Caneveral, di: http://indo-thin.blogspot.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/indo-oracle/ <*> Your email settings: Individual Email | Traditional <*> To change settings online go to: http://groups.yahoo.com/group/indo-oracle/join (Yahoo! ID required) <*> To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/

