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

การป้องกัน Dirty Reads

ให้วิเคราะห์ว่ามีบัญชีจำนวนเท่าใดที่มียอดเงินมากกว่า $50,000

เนื่องจากจำนวนบัญชีเป็นผลลัพธ์ที่สำคัญ จึงไม่ควรอ่านข้อมูลที่ถูกแก้ไขโดย transaction อื่นที่ยังไม่ได้ commit หรือ rollback ซึ่งเป็นการป้องกัน dirty reads อย่างไรก็ตาม ไม่จำเป็นต้องคำนึงถึง non-repeatable reads หรือ phantom reads

เตรียม script ให้พร้อม

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

Transactions and Error Handling in SQL Server

ดูคอร์ส

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

  • กำหนดระดับ isolation ที่เหมาะสมเพื่อป้องกัน dirty reads
  • เลือกนับจำนวนบัญชีที่ตรงตามเงื่อนไขที่กำหนด

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

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

-- Set the appropriate isolation level
SET TRANSACTION ___ ___ ___ ___

-- Count the accounts
SELECT ___(*) AS number_of_accounts
FROM accounts
WHERE current_balance >= 50000;
แก้ไขและรันโค้ด