Saya pikir itu baik-baik saja dalam beberapa keadaan, selama Anda menerima konsekuensinya, dan tidak punya pilihan lain.
Untuk opsi lain, saya akan mendorong orang untuk menggunakan Read Committed Snapshot Isolasi (RCSI) untuk aplikasi baru, atau SNAPSHOT ISOLATION (SI) untuk aplikasi yang lebih lama, di mana Anda tidak dapat dengan mudah menguji seluruh basis kode untuk kondisi balapan dengan RCSI.
Namun, itu mungkin tidak cocok. Anda mungkin perlu meluangkan waktu ekstra untuk mencintai dan merawat tempdb, dan memastikan tidak ada yang meninggalkan transaksi terbuka yang membuat versi store (dan tempdb) tumbuh dan mengisi disk.
Jika Anda tidak memiliki DBA, atau seseorang yang tugasnya memantau dan mengelola SQL Server Anda, opsi-opsi itu bisa berbahaya. Lebih umum, tidak semua orang memiliki kendali penuh atas kode yang masuk ke server mereka di mana mereka dapat mengubah string koneksi atau kode untuk meminta SI untuk pertanyaan masalah.
Selain itu, kebanyakan orang tidak memiliki masalah penguncian dengan seluruh aplikasi mereka . Mereka memiliki masalah dengan hal-hal seperti melaporkan data OLTP. Jika Anda dapat menerima pertukaran NOLOCK / RU dengan imbalan laporan yang tidak diblokir oleh penulis, lakukan itu.
Pastikan Anda mengerti apa artinya itu. Itu tidak berarti permintaan Anda tidak mengambil kunci apa pun, itu berarti itu tidak menghormati kunci yang diambil oleh permintaan lain.
Dan tentu saja, jika masalah Anda adalah penguncian penulis / penulis, satu-satunya pilihan yang akan membantu adalah SI, tetapi akan membutuhkan banyak pekerjaan pengembang untuk mengimplementasikannya dengan benar dengan penanganan kesalahan, dll.