Saya menguji aplikasi saya, saya memerlukan beberapa kode yang stabil mensimulasikan kebuntuan di situs database (skrip sql jika mungkin).
Terima kasih.
TAMBAH:
sql-server
deadlock
garik
sumber
sumber
Jawaban:
Cara terbaik adalah menggunakan tabel yang sudah Anda miliki. Buat dua tabel - table-a, table-b Untuk tes Anda bahkan dapat memperbarui kolom yang sama dengan informasi yang sama sehingga Anda tidak mempengaruhi data nyata.
Misalnya UPDATE table_a set ID = ID di mana ID = 100;
Buka dua sesi ke database yang sama. Pada satu, jalankan
Di jalankan dua
Kemudian, salin pernyataan pembaruan ke sesi yang berlawanan dan jalankan pada saat yang sama. Jadi satu,
Dalam dua
Saya baru saja mencoba ini dan menggunakan MS-SQL
sumber
Gunakan
sp_getapplock
prosedur yang tersimpan sistem untuk mengambil apa yang perlu kunci pada kode sampel Anda.Sebenarnya, ini adalah semafor Dijkstra . Masih sangat berguna
sumber
sp_getapplock
tidak akan melempar kesalahan. Entah akan menunggu batas waktu berakhir, atau (jika tidak ada batas waktu), kembali-3
( msdn.microsoft.com/en-us/library/ms189823.aspx )Berikut metode lain yang mirip dengan yang diposting di atas ->
Script yang akan digunakan di Query Window # 1
Script yang akan digunakan di Query Window # 2
Script yang akan ditambahkan ke Jendela Permintaan # 1
Untuk detail tambahan tentang ini, lihat http://ajitananthram.wordpress.com/2014/02/23/scripts-to-force-a-deadlock-in-sql-server/
sumber