ORA-1555 disebabkan data yg ingin dibaca dari undo
segment sudah di-overwrite.

Data ini di-overwrite karena transaksinya dianggap
selesai (sudah commit).
Di oracle9i, ada parameter undo_retention, yg mengatur
berapa lama oracle akan me-maintain undo data setelah
transaksi commit.

Jadi semakin sering kita commit, kemungkinan bahwa
oracle meng-overwrite data tersebut di undo semakin
cepat, sehingga semakin besar pula kemungkinan kita
tidak menemukan data tsb di undo tbs.

Dalam kasus Anda, dikatakan bahwa ketika menggunakan
satu command, justru kena error ora-1555.
Ini karena ada user lain yg juga mengubah data yg
sama.
Karena proses update/delete tersebut cukup lama, pasti
ada kemungkinan data transaksi user lain tersebut
sudah di-overwrite.
Kalau menurut gue, solusinya adalah memperbesar
parameter undo_retention dan memastikan undo
tablespace bisa grow (oracle 9i), atau menggunakan
rollback segment besar terpisah khusus utk transaksi
yg lama tersebut (oracle 8i).

Terkadang kita menganggap bahwa undo tbs tidak pantas
besar2 amat. Ini tidak benar, karena undo adalah
syarat mutlak utk menjaga konsistensi transaksi (dan
memungkinkan transaksi READ tetap bisa dilakukan dgn
membaca before image dari undo). Terkadang lebih baik
membeli harddisk baru daripada menggunakan waktu kita
utk mengakalin bagaimana memperkecil undo tbs.

Kesimpulan-nya akan seperti berikut:

1 - Satu commit di akhir proses -> kemungkinan
pemakaian undotbs semakin BESAR -> kemungkinan
ORA-1555 semakin KECIL, karena undo dr transaksi yg
belum commit tidak di-overwrite

2 - Terlalu sering commit -> pemakaian undo tbs
mungkin lebih KECIL -> tetapi kemungkinan ORA1555 juga
semakin BESAR

regards,
tomi

--- tpriyambodo <[EMAIL PROTECTED]> wrote:

> No 1 dan no 2 thanks atas info nya akan saya cerna
> dulu.
> 
> But no 3, kalo boleh saya minta info tambahan ,
> kesimpulan yang saya ambil dari penjelasan anda:
> 1 - Satu commit di akhir proses ->Pemakaian undotbs
> semakin besar -> 
> kemungkinan ORA1555 semakin besar ( atau bisa juga
> ORA-30036)
> 2 - Terlalu sering commit -> pemakaian undo tbs
> kecil -> tetapi 
> kemungkinan ORA1555 juga semakin besar.
> 
> Dalam kasus saya, saya menggunakan cursor justru
> karena dengan  satu 
> kali perintah untuk semua data , saya sering dapat
> ORA1555.  
> Dan memang beberapa kali (walau jarang ) saya masih
> tetap juga dapat 
> ORA1555 . Saya ambil commit untuk tiap 10000 data,
> dan pernah juga 
> 5000. Apakah error yang saya dapat karena terlalu
> sering commit 
> tersebut? karena saya mengira  memang undotbs nya
> penuh, karena ada 
> proses lain yang berjalan juga dan memakan undotbs
> yang besar.
> 
> Pertanyaan kedua ,
> dalam oracode disebutkan :
> ORA-01555: snapshot too old: rollback segment number
> string with 
> name "string" too small 
> Cause: Rollback records needed by a reader for
> consistent read are 
> overwritten by other writers 
> Apakan overwrite ini yang disebabkan oleh terlalu
> banyak commit?
> 
> Thanks atas info nya
>   
> 
> 
>  
> --- In [email protected], Tomi Wijanto
> <[EMAIL PROTECTED]> 
> wrote:
> 
> > > 3. ada tips optimasi untuk cursor dengan jutaan
> data
> > > gak ? 
> > 
> > Kalau bisa jangan pakai cursor :).
> > Kalau bisa jadi 1 perintah Update dan 1 perintah
> > Delete, itu lebih bagus.
> > Cara lain mungkin dengan menggunakan array, jadi
> > delete atau update dilakukan per 100 rows
> misalnya.
> > Terus, sebenarnya semakin banyak commit hanya akan
> > memperlambat proses, kalau bisa 1 commit aja di
> akhir
> > (emang pemakaian undo tbs akan semakin besar, tapi
> > dengan seringnya commit walaupun undo lbh kecil
> tetapi
> > kemungkinan terjadi ORA-1555 jg semakin besar).
> > 
> > regards,
> > tomi
> > 
> > 
> > __________________________________________________
> > 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.lizt.org (NEW)
> -----------------------------------------------
> 
> Bergabung dengan Indonesia Thin Client User Groups, 
> Terminal Server, Citrix, New Moon Caneveral, di:
> http://indo-thin.vze.com 
> Yahoo! Groups Links
> 
> 
>     [EMAIL PROTECTED]
> 
>  
> 
> 
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam
protection around 
http://mail.yahoo.com 

__________________________________________________
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.lizt.org (NEW)
-----------------------------------------------

Bergabung dengan Indonesia Thin Client User Groups, 
Terminal Server, Citrix, New Moon Caneveral, di:
http://indo-thin.vze.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/indo-oracle/

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