Anda tidak dapat mencegah pembacaan kotor. Penulis mengambil kunci eksklusif untuk mencegah jujur, membaca berkomitmen, membaca. Tapi tidak ada tidak ada dapat Anda lakukan untuk mencegah pembacaan yang kotor. Pembaca kotor harus berhenti membaca kotor, titik.
Dengan asumsi bahwa kode yang memeriksa tabel Pelanggan berada di bawah kendali Anda, solusinya adalah menghapus petunjuk baca kotor dari kueri. Ini mungkin akan menyebabkan pertengkaran, karena polling sekarang akan memblokir penulisan. Solusi terbaik untuk itu adalah mengaktifkan pembuatan versi baris :
ALTER DATABASE [<DBNAME>] SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE [<DBNAME>] SET READ_COMMITTED_SNAPSHOT ON;
Kemudian cukup polling dari Pelanggan sebagai kueri normal, tanpa petunjuk apa pun. Jajak pendapat Anda tidak akan memblokir penulisan di belakang karena versi baris akan dimulai dan mengalihkan pemindaian kueri ke versi baris pra-pembaruan dan tidak terkunci.
Satu catatan lagi:polling setiap 500ms? Mungkin Anda harus menggunakan mekanisme Pemberitahuan Kueri untuk membatalkan cache Anda, lihat Yang Misterius Pemberitahuan .