SQL Server จะเตือนเกี่ยวกับการให้สิทธิ์หน่วยความจำมากเกินไปเมื่อใด


18

เงื่อนไขใดบ้างที่ทำให้เกิดคำเตือนแผนการดำเนินการ"ให้เงินทุนมากเกินไป" ?

หน่วยความจำแบบสอบถามให้ตรวจพบ "ExcessiveGrant" ซึ่งอาจส่งผลกระทบต่อความน่าเชื่อถือ ขนาดการให้สิทธิ์: เริ่มต้น 5128 KB, สุดท้าย 5128 KB, ใช้แล้ว 16 KB

SSMS

แผน SSMS

คุณสมบัติ SSMS

แผนสำรวจ

แผนสำรวจ

Showplan xml

<Warnings>
    <MemoryGrantWarning GrantWarningKind="Excessive Grant"
        RequestedMemory="5128" GrantedMemory="5128" MaxUsedMemory="16" />
</Warnings>

คำตอบ:


19

ในการสร้างคำเตือนนี้:

  1. สูงสุดที่ใช้หน่วยความจำจะต้องน้อยกว่า 5%ของหน่วยความจำที่ได้รับ; และ
  2. แบบสอบถามจะต้องใช้สัญญาณสัญญาณปกติ (ไม่เล็ก) สัญญาณ

หากต้องการใช้เซมาฟอร์ทรัพยากรปกติของเคียวรี

  • ได้รับหน่วยความจำมากกว่า 5MB (5120 KB, 640 x 8KB หน้า); หรือ
  • มีต้นทุนแผนโดยประมาณทั้งหมดกว่า 3 หน่วยและไม่ใช่แผนการที่ไม่สำคัญ

ข้อกำหนดรุ่นของเซิร์ฟเวอร์:

  • SQL Server 2014 SP2 (12.0.5000) หรือใหม่กว่า
  • SQL Server 2016 SP1 (13.0.4001) หรือใหม่กว่า
  • SQL Server 2017 RTM (14.0.1000) หรือใหม่กว่า
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.