ฉันค่อนข้างแน่ใจว่าคุณต้องระบุNOLOCK
สำหรับแต่ละคำJOIN
ในแบบสอบถาม แต่ประสบการณ์ของฉันถูก จำกัด ไว้ที่ SQL Server 2005
เมื่อฉันค้นหา MSDN เพื่อยืนยันฉันไม่พบสิ่งที่แน่นอน ข้อความด้านล่างดูเหมือนจะทำให้ฉันคิดว่าสำหรับปี 2008 ทั้งสองข้อความข้างต้นของคุณจะเทียบเท่ากัน แต่สำหรับปี 2005 ไม่ใช่กรณีนี้:
[SQL Server 2008 R2]
คำใบ้ล็อกทั้งหมดจะแพร่กระจายไปยังตารางและมุมมองทั้งหมดที่เข้าถึงได้โดยแผนแบบสอบถามรวมถึงตารางและมุมมองที่อ้างอิงในมุมมอง นอกจากนี้ SQL Server ยังทำการตรวจสอบความสอดคล้องของการล็อกที่สอดคล้องกัน
[SQL Server 2005]
ใน SQL Server 2005 คำใบ้ล็อกทั้งหมดจะแพร่กระจายไปยังตารางและมุมมองทั้งหมดที่อ้างอิงในมุมมอง นอกจากนี้ SQL Server ยังทำการตรวจสอบความสอดคล้องของการล็อกที่สอดคล้องกัน
นอกจากนี้โปรดสังเกต - และสิ่งนี้ใช้ได้กับทั้งปี 2005 และ 2008:
คำใบ้ของตารางจะถูกละเว้นหากไม่มีการเข้าถึงตารางโดยแผนการสอบถาม สิ่งนี้อาจเกิดจากเครื่องมือเพิ่มประสิทธิภาพเลือกที่จะไม่เข้าถึงตารางเลยหรือเนื่องจากมีการเข้าถึงมุมมองที่จัดทำดัชนีแทน ในกรณีหลังการเข้าถึงมุมมองที่จัดทำดัชนีสามารถป้องกันได้โดยใช้OPTION (EXPAND VIEWS)
คำใบ้แบบสอบถาม