Mas Freddie, Menurut saya, masalah locking adalah masalah biasa pada database yg table2-nya diakses(update,delete) secara bersamaan.
Ada beberapa hal yg bisa dilakukan,a.l: 1. Meminimalkan waktu locking. Contoh : a. Di dalam sebuah procedure (PL/SQL) misalnya, dilakukan update record dalam jumlah banyak dengan menggunakan iterasi (LOOP). Untuk meminimalkan waktu locking, usahakan gunakan perintah COMMIT setiap "n" kali LOOP. Jangan setelah LOOP selesai. Tetapi juga jangan menggunakan perintah COMMIT setiap kali LOOP, karena akan mengganggu performance database. b. Jika dimungkinkan, gunakan "rowid" pada where clause ketika update atau delete. 2. Hindari locking yg tidak diperlukan. Contoh: Jika tidak diperlukan jangan menjalankan perintah: SELECT ... FROM ... FOR UPDATE; LOCK TABLE ...; CREATE INDEX ...;--pada jam sibuk ALTER INDEX ...;--pada jam sibuk DROP INDEX ...;--pada jam sibuk ... 3. Lock table/row dengan menggunakan "timeout" sebelum menjalankan UPDATE didalam procedure untuk menghindari "penungguan" yg tidak diinginkan ketika menjalankan procedure tsb. Contoh: Untuk cursor for loop gunakan SELECT ... FOR UPDATE WAIT n <detik>; 4. Apalagi ya??? (kok malah nanya...he..he..he..) CMIIW, bw --- In [email protected], Freddie Tanuwijaya <synar_0...@...> wrote: > > > loh koq malah saya balik ditanya hahahaha, saya pengen tau aja gmna si atasin > locking > --- On Tue, 4/14/09, Ujang Jaenudin <ujang.jaenu...@...> wrote: > From: Ujang Jaenudin <ujang.jaenu...@...> > Subject: Re: [indo-oracle] Cara ngatasin Locking > To: [email protected] > Date: Tuesday, April 14, 2009, 2:45 AM > > > > > > > > > > > > > > > > > > coba aja ini, kalau bisa nerjemahin outputnya sendiri....saya acungkan > > jempol 12 :-) > > > > create table t ( x int ); > > insert into t values(1); > > select sid, type, id1, id2 ,lmode,request from v$lock where sid = > > (select sid from v$mystat where rownum = 1); > > set serveroutput on > > exec dbms_output. put_line( dbms_transaction. local_transactio n_id(true) ); > > select sid, type, id1, id2,lmode,request from v$lock where sid = > > (select sid from v$mystat where rownum = 1); > > update t set x = 0 where x=1; > > select sid, type, id1, id2,lmode,request from v$lock where sid = > > (select sid from v$mystat where rownum = 1); > > rollback; > > select x from t where x=1 for update; > > select sid, type, id1, id2,lmode,request from v$lock where sid = > > (select sid from v$mystat where rownum = 1); > > > > 2009/4/13 Freddie Tanuwijaya <synar_0...@yahoo. com>: > > > > > > saya blom cek ke v$lock tapi yg pasti query pl/sqlnya tidak ada select for > > update yg ada update dmna where nya menggunakan subquery. > > > Mohon bantuannya menerangkan kedua macam lock ini, saya masi awam di admin. > > Thx > > > --- On Mon, 4/13/09, Ujang Jaenudin <ujang.jaenudin@ gmail.com> wrote: > > > From: Ujang Jaenudin <ujang.jaenudin@ gmail.com> > > > Subject: Re: [indo-oracle] Cara ngatasin Locking > > > To: indo-oracle@ yahoogroups. com > > > Date: Monday, April 13, 2009, 9:17 AM > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > dari v$lock typenya apa kah? > > > > > > TM or TX? > > > > > > kalau TM....apakah ada select for update? > > > > > > kalau TX apakah menggunakan connection pooling? > > > > > > > > > > > > On Sun, Apr 12, 2009 at 8:41 PM, Freddie Tanuwijaya > > > > > > <synar_0287@ yahoo. com> wrote: > > > > > >> Saudara-saudara saya mempunyai masalah, saya mempunya 1 transaksi n > >> biasanya itu membutuhkan waktu 1 menit untuk proses sehingga terjadi > >> locking ketika ada transaksi yg lain, saya sudah bersusaha untuk > >> mengurangi waktu prosesnya tapi hasilnya 1 menit sudah maksimal, apa ada > >> cara lain untuk mengatasi kasus locking ini?? Thx > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> [Non-text portions of this message have been removed] > > > > > >> > > > > > >> > > > > > >> > > > > > >> ------------ --------- --------- ------ > > > > > >> > > > > > >> -- > > > > > >> -----------I. N.D.O - O.R.A.C.L.E- --------- ----- > > > > > >> Keluar: indo-oracle- unsubscribe@ yahoogroups. com > > > > > >> Website: http://indooracle. wordpress. com > > > > > >> http://www.facebook .com/group. php?gid=51973053 515 > > > > > >> ------------ --------- --------- --------- -------- > > > > > >> > > > > > >> Bergabung dengan Indonesia Thin Client User Groups, > > > > > >> Terminal Server, Citrix, New Moon Caneveral, di: > > > > > >> http://indo- thin.blogspot. comYahoo! Groups Links > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > > > > > > > > -- > > > > > > thanks and regards > > > > > > ujang | oracle dba | mysql dba > > > > > > http://ora62. wordpress. com > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > [Non-text portions of this message have been removed] > > > > > > > > > > > > ------------ --------- --------- ------ > > > > > > -- > > > -----------I. N.D.O - O.R.A.C.L.E- --------- ----- > > > Keluar: indo-oracle- unsubscribe@ yahoogroups. com > > > Website: http://indooracle. wordpress. com > > > http://www.facebook .com/group. php?gid=51973053 515 > > > ------------ --------- --------- --------- -------- > > > > > > Bergabung dengan Indonesia Thin Client User Groups, > > > Terminal Server, Citrix, New Moon Caneveral, di: > > > http://indo- thin.blogspot. comYahoo! Groups Links > > > > > > > > > > > > > > > > -- > > thanks and regards > > ujang | oracle dba | mysql dba > > http://ora62. wordpress. com > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > [Non-text portions of this message have been removed] >

