4
ALLOW_SNAPSHOT_ISOLATION และ READ_COMMITTED_SNAPSHOT
ฟอรัมและตัวอย่างแบบออนไลน์ส่วนใหญ่มักแนะนำให้มีทั้งสองอย่างALLOW_SNAPSHOT_ISOLATIONและREAD_COMMITTED_SNAPSHOTตั้งค่าเป็นเปิดเมื่อใดก็ตามที่มีคนถามสแนปชอตการกำหนดเวอร์ชันของแถวหรือคำถามที่คล้ายกัน ฉันเดาคำว่า SNAPSHOT ในการตั้งค่าทั้งสองทำให้สับสนเล็กน้อย ผมคิดว่าในการสั่งซื้อสำหรับโปรแกรมฐานข้อมูลที่จะใช้เวอร์ชันแถวแทนการล็อคสำหรับการทำงานเริ่มต้น READ_COMMITTED ฐานข้อมูลREAD_COMMITTED_SNAPSHOTเป็นชุดที่ ON โดยไม่คำนึงถึงสิ่งที่ALLOW_SNAPSHOT_ISOLATIONการตั้งค่า ALLOW_SNAPSHOT_ISOLATIONตั้งค่าจะถูกตั้งไว้ที่ ON เท่านั้นที่จะช่วยให้ภาพรวมการแยกเมื่อเริ่มต้นการทำธุรกรรม (เช่น SET แยกธุรกรรมระดับภาพรวม) โดยไม่คำนึงถึงของREAD_COMMITTED_SNAPSHOTการตั้งค่า เหตุผลเดียวที่มีการตั้งค่าทั้งสองนี้เป็น ON คือเมื่อต้องมีการอ่านการกำหนดเวอร์ชันแถวที่ยอมรับและ การแยกสแน็ปช็อต คำถามของฉันคือความเข้าใจของฉันไม่ถูกต้องในบางวิธี? และการตั้งค่าทั้งสองนี้จะต้องตั้งค่าเป็นเปิดพร้อมกันเสมอ (โดยเฉพาะอย่างยิ่งสำหรับการอ่านการกำหนดเวอร์ชันแถวที่ยอมรับได้)?