1
การหยุดชะงักเมื่ออัพเดตแถวต่าง ๆ ด้วยดัชนีที่ไม่ทำคลัสเตอร์
ฉันกำลังแก้ไขปัญหาการหยุดชะงักในขณะที่ฉันสังเกตเห็นว่าพฤติกรรมการล็อคแตกต่างกันเมื่อฉันใช้ดัชนีแบบคลัสเตอร์และแบบไม่รวมกลุ่มบนฟิลด์รหัส ปัญหาการหยุดชะงักดูเหมือนว่าจะได้รับการแก้ไขหากดัชนีหรือคีย์หลักที่ถูก clusted ถูกนำไปใช้กับฟิลด์ id ฉันมีการทำธุรกรรมที่แตกต่างกันที่ทำการอัปเดตแถวที่แตกต่างกันอย่างน้อยหนึ่งรายการเช่นธุรกรรม A จะอัปเดตแถวที่มี ID = a เท่านั้น tx B จะแตะแถวที่มี ID = b เท่านั้น และฉันเข้าใจดีว่าหากไม่มีดัชนีการอัปเดตจะได้รับการอัพเดตการล็อคสำหรับแถวทั้งหมดและแปลงเป็นล็อคแบบเอกสิทธิ์เฉพาะบุคคลเมื่อจำเป็นซึ่งในที่สุดจะนำไปสู่การหยุดชะงัก แต่ฉันล้มเหลวในการค้นหาสาเหตุที่มีดัชนีที่ไม่ใช่คลัสเตอร์การหยุดชะงักยังคงอยู่ที่นั่น (แม้ว่าอัตราการเข้าชมดูเหมือนจะลดลง) ตารางข้อมูล: CREATE TABLE [dbo].[user]( [id] [int] IDENTITY(1,1) NOT NULL, [userName] [nvarchar](255) NULL, [name] [nvarchar](255) NULL, [phone] [nvarchar](255) NULL, [password] [nvarchar](255) NULL, [ip] [nvarchar](30) NULL, [email] [nvarchar](255) NULL, [pubDate] …