ไมค์พูดถูกที่ข้อความแสดงข้อผิดพลาดที่คุณได้รับนั้นมาจากแอพพลิเคชั่น Management Studio และไม่ใช่จาก SQL Server มันเป็นความทรงจำในข่ายท้องถิ่นของคุณที่ได้รับหมดน่าจะเกิดจากความพยายามที่จะดึง 16000000000 แถวลงในใบสมัครลูกค้า (การแสดงผลข้อมูลมากที่ในตารางที่ค่อนข้างมีราคาแพงในแง่ของหน่วยความจำเพื่อพยายามที่จะ จำกัด การค้นหาของคุณโดยใช้TOP
ฯลฯ . - ฉันไม่รู้ว่าคุณสามารถใช้ข้อมูลที่เพียงพอเพื่อใช้หน่วยความจำภายในเครื่องของคุณได้อย่างไร
แต่ฉันต้องการแก้ไขปัญหาอื่น: ใช้ตัวจัดการงานเพื่อประเมินจำนวนหน่วยความจำที่ SQL Server ใช้อยู่ อย่าทำอย่างนี้; มันเป็นคนโกหกที่กล้าหาญ คัดลอกจากคำตอบนี้ (คำถามของคุณสองเท่าดังนั้นฉันจึงไม่สามารถปิดซ้ำได้):
คุณไม่สามารถเชื่อถือเคย Task Manager เพื่อบอกคุณว่าหน่วยความจำ SQL Server กำลังใช้งานอยู่เท่าใด หยุดใช้ตัวจัดการงานสำหรับช่วงเวลานี้ ใช้ตัวนับประสิทธิภาพ - คุณสามารถสอบถามตัวนับประสิทธิภาพโดยใช้ DMV:
SELECT object_name, cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name = 'Total Server Memory (KB)';
คุณสามารถบันทึกเป็นทางลัดแบบสอบถามในเครื่องมือ> ตัวเลือก> สภาพแวดล้อม> แป้นพิมพ์> ทางลัดแบบสอบถามและรับผลลัพธ์ที่แม่นยำในหน้าต่างแบบสอบถามได้เร็วกว่าการรับผลลัพธ์ที่ไม่ถูกต้องจากตัวจัดการงาน
คุณสามารถตรวจสอบแรงกดดันหน่วยความจำ (และคุณสามารถทำอะไรกับมันได้) โดยใช้คำสั่งเหล่านี้:
SELECT object_name, cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name IN ('Total Server Memory (KB)', 'Target Server Memory (KB)');
-- SQL Server 2012:
SELECT physical_memory_kb FROM sys.dm_os_sys_info;
-- Prior versions:
SELECT physical_memory_in_bytes FROM sys.dm_os_sys_info;
EXEC sp_configure 'max server memory';