แผนแบบสอบถามเปลี่ยนประสิทธิภาพที่แย่ลงใน SQL Server 2014


10

เราเพิ่งอัพเกรดเซิร์ฟเวอร์ของเราจาก SQL Server 2008R2 เป็น SQL Server 2014 เรามีข้อความค้นหาที่ทำงานได้ดีในปี 2008R2 แต่ตอนนี้ในปี 2014 ทำงานช้าลงอย่างไม่น่าเชื่อมากและมีแผนปฏิบัติการที่ไม่ดี

ฉันได้ทำการทดสอบหลายครั้ง ...

  1. สลับ 2014 DB กลับไปเป็นโหมดเข้ากันได้ 2008/2012
  2. ทดสอบแบบสอบถามโดยใช้การแบ่งหน้า

ทั้งสองอย่างนั้นส่งผลให้คิวรีทำงานเหมือนกันกับที่ทำและรวดเร็วเหมือน SQL Server 2008R2

เหตุใดแผนไม่ดีและแบบสอบถามทำงานนานใน SQL Server 2014

โดยประมาณ / ข่าว

ภาพนี้แสดงข้อความค้นหา 2 คำโดยหนึ่งแถวใช้หมายเลขตามที่เรียกใช้ในปี 2008R2 จากนั้นรูปที่สองคือการแก้ไขด้วยการแบ่งหน้า ทั้งสองวิ่งในปี 2014 ทั้งสองแตกต่างกันมาก แต่ในปี 2008 เราเห็นประสิทธิภาพการทำงานเหมือนว่าเราใช้เลขหน้าในปี 2014

คำตอบ:


7

นี่ไม่ใช่ปัญหามันเกิดจากการออกแบบและถือว่าเป็นการปรับปรุงประสิทธิภาพ

หากการสืบค้นของคุณไม่ทำงานตามที่คาดไว้คุณจะต้องจัดการเรื่องนี้ในรหัสของฐานข้อมูล / แอปพลิเคชันของคุณ

คุณสามารถบังคับให้ตัวประมาณค่า carnality เก่าได้โดยใช้ค่าสถานะการสืบค้นกลับ 9481 ที่เซิร์ฟเวอร์เซสชันหรือระดับการสืบค้น (โดยใช้OPTION (QUERYTRACEON 9481)) สิ่งนี้จะบังคับไม่ว่าระดับความเข้ากันได้ของฐานข้อมูลจะเป็นเท่าไหร่

นอกจากนี้ยังมีตันของข้อมูลว่าทีม CSS โพสต์ที่นี่

โพสต์รายละเอียดเพิ่มเติมเกี่ยวกับ Cardanility Estimator และการเปลี่ยนแปลงรอบกระบวนการใน SQL Server 2014 รวมถึงตัวอย่าง


นั่นฟังดูเหมือนเป็นข้ออ้างสำหรับบางสิ่งที่ผิดพลาด
dvdmn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.