KB2923460-memperbaiki: kueri Deadlocked ketika ALLOW_SNAPSHOT_ISOLATION dan READ_COMMITTED_SNAPSHOT diaktifkan di SQL Server 2012

Gejala

Pertimbangkan skenario berikut:

  • Anda memiliki database Microsoft SQL Server 2012 yang memiliki opsi ALLOW_SNAPSHOT_ISOLATION dan READ_COMMITTED_SNAPSHOT yang diaktifkan.

  • Anda memiliki setidaknya tiga kueri bersamaan yang dijalankan pada tabel yang sama.

  • Kueri menggunakan petunjuk kueri (Tablock, UPDLOCK) .

  • Setiap kueri dibungkus dalam pernyataan mulai Tran yang eksplisit, tetapi pernyataan Tran commit tidak dieksekusi.

Saat kueri pertama dilakukan dalam skenario ini, salah satu kueri lainnya akan berkemacetan. Saat READ_COMMITTED_SNAPSHOT diaktifkan bersamaan dengan petunjuk kueri Tablock dan UPDLOCK , sesi menggunakan tombol IX pada tabel. Kemacetan terjadi ketika dua sesi bersamaan mencoba mengonversi kunci IX ke X dikunci pada saat yang sama. Jika READ_COMMITTED_SNAPSHOT dinonaktifkan, sesi akan mendapatkan enam kunci yang tidak akan mengalami kemacetan ketika dikonversi ke X Locks. Hotfix ini membahas perilaku ini dengan memberikan LCK_M_SCH_S Locks dan bukan IX Locks saat READ_COMMITTED_SNAPSHOT digunakan dengan petunjuk Tablock dan updlock .Catatan Masalah ini juga terjadi di Microsoft SQL Server 2008 R2. Hotfix untuk SQL Server 2008 R2 akan segera dirilis.

Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:

Status

Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

×