Pada dasarnya untuk melihat data yang terlock ada di master.dbo.sysprocesses atau menjalankan sp_who2. untuk melihat lebih lengkapnya bisa mengunakan script dibawah


create proc sp_lock2
as select * from (
SELECT
s.spid,
s.blocked,
DB_NAME(s.dbid) DatabaseName,
s.program_name,
s.loginame,
OBJECT_NAME(s.dbid) ObjectName,
CAST(text AS VARCHAR(MAX)) SQL

FROM
sys.sysprocesses s
CROSS APPLY
sys.dm_exec_sql_text (sql_handle)
where blocked <> 0

union all


SELECT
s.spid,
s.blocked,
DB_NAME(s.dbid),
s.program_name,
s.loginame,
OBJECT_NAME(s.dbid),
CAST(text AS VARCHAR(MAX))
FROM
sys.sysprocesses s
CROSS APPLY
sys.dm_exec_sql_text (sql_handle)


where spid in (
SELECT
s.blocked
FROM
sys.sysprocesses s
CROSS APPLY
sys.dm_exec_sql_text (sql_handle)
where blocked <> 0 )

) B order by spid



Setelah itu di kill.....
Posted by Shanto Labels:
Ketika data di database kita baca atau di rubah, database system akan mengontrol apakah terjadi lock terhadap data. Pada dasarnya Lock berfungsi agar transkasi tidak dapat di rubah oleh transaksi lain selama transaksi tersebut sudah dilakukan commited hal ini menjaga konsistensi terhadap datanya.

So, gimana caranya agar kita bisa membaca data tersebut tanpa terjadi lock. kita bisa mengunakan NOLOCK dan READPAST, lalu bedanya apa ?

1. LOCK.
- Membaca data transaksi yang uncommited dan akan membaca data yang terlock.

Contoh :

BEGIN TRAN
UPDATE GS_AREA_CODES SET ac_area_desc = 'JAKARTA BARAT'
WHERE ac_area_id = '11'

lakukan

SELECT count(*) from GS_AREA_CODES with (NOLOCK)

akan menghasilakn 5 baris kemudian lakukan

ROLLBACK TRAN

lakukan kembali

SELECT count(*) from GS_AREA_CODES with (NOLOCK)

akan menghasilakn 5 baris juga.


2. READPAST.
- Membaca data transaksi yang commited dan akan mengabaikan data yang terlock.

Contoh :

BEGIN TRAN
UPDATE GS_AREA_CODES SET ac_area_desc = 'JAKARTA BARAT'
WHERE ac_area_id = '11'

lakukan

SELECT count(*) from GS_AREA_CODES with (READPAST)

akan menghasilakn 4 baris kemudian lakukan

ROLLBACK TRAN

lakukan kembali

SELECT count(*) from GS_AREA_CODES with (READPAST)

akan menghasilakn 5 baris.
Posted by Shanto Labels: