Tidak yakin mengapa Anda tidak membungkus transaksi keuangan dalam transaksi basis data (seperti ketika Anda mentransfer dana dari satu akun ke akun lainnya - Anda tidak melakukan satu sisi transaksi pada suatu waktu - inilah mengapa transaksi eksplisit ada). Bahkan jika kode Anda adalah braindead untuk transaksi bisnis seperti apa adanya, semua database transaksional memiliki potensi untuk melakukan kembalikan secara implisit jika terjadi kesalahan atau kegagalan. Saya pikir diskusi ini jauh di atas kepala Anda.
Jika Anda mengalami masalah penguncian, terapkan versi dan bersihkan kode Anda.
Tidak ada kunci tidak hanya mengembalikan nilai yang salah itu mengembalikan catatan hantu dan duplikat.
Ini adalah kesalahpahaman umum bahwa selalu membuat kueri berjalan lebih cepat. Jika tidak ada kunci tulis di atas meja, itu tidak ada bedanya. Jika ada kunci di atas meja, itu dapat membuat kueri lebih cepat, tetapi ada alasan kunci diciptakan di tempat pertama.
Dalam keadilan, berikut adalah dua skenario khusus di mana petunjuk nolock dapat memberikan utilitas
1) Database server pra-2005 sql yang perlu menjalankan kueri panjang terhadap database OLTP langsung, ini mungkin satu-satunya cara
2) Aplikasi yang ditulis dengan buruk yang mengunci catatan dan mengembalikan kontrol ke UI dan pembaca diblokir tanpa batas waktu. Nolock dapat membantu di sini jika aplikasi tidak dapat diperbaiki (pihak ketiga dll) dan basis datanya baik sebelum 2005 atau versi tidak dapat dinyalakan.