ฉันคิดว่ามันใช้ได้ในบางสถานการณ์ตราบใดที่คุณยอมรับผลที่ตามมาและไม่มีทางเลือกอื่น
สำหรับตัวเลือกอื่น ๆ ฉันจะผลักดันให้ผู้ใช้ใช้ Read Committed Snapshot Isolation (RCSI) สำหรับแอปพลิเคชันใหม่หรือ SNAPSHOT ISOLATION (SI) สำหรับแอปพลิเคชันรุ่นเก่าซึ่งคุณไม่สามารถทดสอบฐานรหัสทั้งหมดสำหรับสภาพการแข่งขันด้วย RCSI ได้อย่างง่ายดาย
อย่างไรก็ตามสิ่งเหล่านั้นอาจไม่เหมาะสม คุณอาจต้องใช้เวลาพิเศษในการรักและดูแล tempdb และต้องแน่ใจว่าไม่มีใครเหลือธุรกรรมที่เปิดอยู่ซึ่งทำให้ที่เก็บรุ่น (และ tempdb) เติบโตและเติมดิสก์
หากคุณไม่มี DBA หรือบุคคลที่มีหน้าที่ดูแลและจัดการ SQL Server ของคุณตัวเลือกเหล่านั้นอาจเป็นอันตรายได้ โดยทั่วไปทุกคนไม่สามารถควบคุมรหัสทั้งหมดไปยังเซิร์ฟเวอร์ของพวกเขาซึ่งพวกเขาสามารถเปลี่ยนสตริงการเชื่อมต่อหรือรหัสเพื่อขอ SI สำหรับการสอบถามปัญหา
นอกจากนั้นคนส่วนใหญ่ไม่ได้มีปัญหากับการล็อคของพวกเขาโปรแกรมทั้งหมด พวกเขามีปัญหากับสิ่งต่าง ๆ เช่นการรายงานข้อมูล OLTP หากคุณสามารถยอมรับการแลกเปลี่ยน NOLOCK / RU เพื่อแลกเปลี่ยนรายงานที่ไม่ได้ถูกบล็อกโดยนักเขียน
เพียงให้แน่ใจว่าคุณเข้าใจความหมาย ไม่ได้หมายความว่าคิวรีของคุณไม่ได้ล็อค แต่ก็ไม่ได้หมายความว่าล็อคไม่ได้รับการล็อคจากการสืบค้นอื่น ๆ
และแน่นอนถ้าปัญหาของคุณคือล็อคนักเขียน / นักเขียนตัวเลือกเดียวที่จะช่วยได้ก็คือ SI แต่มันต้องใช้จำนวนงานที่ไม่น่าเชื่อของนักพัฒนาที่จะใช้งานอย่างถูกต้องด้วยการจัดการข้อผิดพลาด ฯลฯ