เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การป้องกัน Non-Repeatable Reads

สมมติว่าคุณรับผิดชอบวิเคราะห์ข้อมูลลูกค้าของธนาคาร

คุณเตรียมสคริปต์ที่ดึงข้อมูลลูกค้าทุกรายในขั้นแรก จากนั้นสคริปต์จะประมวลผลการดำเนินการทางคณิตศาสตร์บางอย่างจากผลลัพธ์ที่ได้ (ในแบบฝึกหัดนี้จะไม่เน้นที่ส่วนนี้) และหลังจากนั้น ต้องการดึงข้อมูลชุดเดิมอีกครั้งเพื่อให้แน่ใจว่าไม่มีอะไรเปลี่ยนแปลง

เนื่องจากนี่คืองานที่สำคัญมาก จึงควรป้องกันไม่ให้ใครแก้ไขข้อมูลในตาราง customers จนกว่าการวิเคราะห์จะเสร็จสิ้น ซึ่งจะช่วยป้องกัน non-repeatable reads ได้

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Transactions and Error Handling in SQL Server

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดระดับ isolation ที่เหมาะสมเพื่อป้องกัน non-repeatable reads
  • เริ่มต้น transaction
  • Commit transaction

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

-- Set the appropriate isolation level
___ ___ ___ ___ ___ ___

-- Begin a transaction
___ ___

SELECT * FROM customers;

-- some mathematical operations, don't care about them...

SELECT * FROM customers;

-- Commit the transaction
___ ___
แก้ไขและรันโค้ด