จะตรวจสอบคำเตือนการให้หน่วยความจำได้อย่างไร?
เห็นคำเตือนนี้จากแบบสอบถามในแผนแคช
<Warnings>
<MemoryGrantWarning GrantWarningKind="Excessive Grant" RequestedMemory="2751552" GrantedMemory="2751552" MaxUsedMemory="768" />
</Warnings>
RequestedMemory แทนไบต์หรือกิโลไบต์?
คุณจะแก้ไขสิ่งที่ทำให้เกิดคำเตือนนี้ได้อย่างไร
คำตอบ
1 J.D.
โดยปกติจะเป็นผลลัพธ์ (แม้ว่าฉันเชื่อว่าสิ่งอื่นก็สามารถทำให้เกิดได้เช่นกัน) จากปัญหาCardinality Estimate คุณควรจะดูที่แผนการดำเนินการที่เกิดขึ้นจริงและดูว่าคุณมีการประมาณการผิดพลาดโดยการเปรียบเทียบโดยประมาณจำนวนแถวรวมกับจำนวนจริงของแถว หากคุณอัปเดตคำถามของคุณด้วยแผนการดำเนินการ (คุณสามารถอัปโหลดไปวางแผนและเชื่อมโยงกับคำถามของคุณ) เราสามารถให้คำแนะนำที่ดีขึ้นเกี่ยวกับที่มาของปัญหาการให้หน่วยความจำที่มากเกินไป