จะตรวจสอบคำเตือนการให้หน่วยความจำได้อย่างไร?

Jan 01 2021

เห็นคำเตือนนี้จากแบบสอบถามในแผนแคช

<Warnings>
     <MemoryGrantWarning GrantWarningKind="Excessive Grant" RequestedMemory="2751552" GrantedMemory="2751552" MaxUsedMemory="768" />
</Warnings>

RequestedMemory แทนไบต์หรือกิโลไบต์?

คุณจะแก้ไขสิ่งที่ทำให้เกิดคำเตือนนี้ได้อย่างไร

คำตอบ

1 J.D. Jan 01 2021 at 08:53

โดยปกติจะเป็นผลลัพธ์ (แม้ว่าฉันเชื่อว่าสิ่งอื่นก็สามารถทำให้เกิดได้เช่นกัน) จากปัญหาCardinality Estimate คุณควรจะดูที่แผนการดำเนินการที่เกิดขึ้นจริงและดูว่าคุณมีการประมาณการผิดพลาดโดยการเปรียบเทียบโดยประมาณจำนวนแถวรวมกับจำนวนจริงของแถว หากคุณอัปเดตคำถามของคุณด้วยแผนการดำเนินการ (คุณสามารถอัปโหลดไปวางแผนและเชื่อมโยงกับคำถามของคุณ) เราสามารถให้คำแนะนำที่ดีขึ้นเกี่ยวกับที่มาของปัญหาการให้หน่วยความจำที่มากเกินไป