ฉันกำลังตรวจสอบโดยใช้READPAST
คำแนะนำเพื่อลดการล็อกทรัพยากรในระบบย่อยทางการเงินของแอปพลิเคชันของเรา
ดูเหมือนจะเป็นวิธีที่ดีในการไปเพราะบันทึกการทำธุรกรรมทางการเงินนั้นเคยเพิ่มไม่เคยอัพเดทหรือลบ แถวเดียวที่จะถูกข้ามไปคือแถวใหม่ที่แทรกอยู่ภายในธุรกรรม พวกเขาไม่มีอยู่จริงกับโลกภายนอกจนกว่าจะมีการทำธุรกรรม
อย่างไรก็ตามฉันสังเกตเห็นประสิทธิภาพการทำงานแย่ลงสำหรับการค้นหาที่ใช้มุมมองที่จัดทำดัชนีซึ่งฉันได้ใส่READPAST
คำใบ้ไว้ เปรียบเทียบแผนแบบสอบถามมันดูเหมือนกับคำใบ้เครื่องมือเพิ่มประสิทธิภาพแบบสอบถามเลือกที่จะไม่ใช้มุมมองที่จัดทำดัชนีและแทนที่จะกลับไปที่การรักษามันเหมือนมุมมองปกติ
ฉันไม่แน่ใจว่าทำไมถึงเป็นเช่นนั้น ฉันคิดว่ามุมมองที่จัดทำดัชนีจะเหมือนกับดัชนีอื่น ๆ ในคีย์นั้นสามารถล็อกระหว่างการดำเนินการและการเพิ่มREADPAST
จะทำงานในทำนองเดียวกัน
SELECT TOP 1 isa.InvoiceId
FROM Financial_InvoiceSummaryAmounts isa WITH (READPAST)
WHERE isa.TotalOwedAmount = 0.0
SELECT TOP 1 isa.InvoiceId
FROM Financial_InvoiceSummaryAmounts isa
WHERE isa.TotalOwedAmount = 0.0
การเพิ่มNOEXPAND
คำใบ้ดูเหมือนจะใช้งานได้ แต่ฉันสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับสาเหตุที่READPAST
ทำให้เครื่องมือเพิ่มประสิทธิภาพคิวรีสร้างตัวเลือกนั้นตั้งแต่แรก (เป็นส่วนหนึ่งของคำตอบแบบเต็ม)