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/
 


Kirim email ke