ดูอย่างรวดเร็วว่ามีการจัดสรร RAM ไปยัง SQL Server เท่าใด


15

ด้วย SQL Server 2005 คุณสามารถดูที่ Task Manager และอย่างน้อยให้ดูคร่าวๆว่าหน่วยความจำจัดสรรให้กับ SQL Server เท่าใด

ด้วย SQL Server 2008 ชุดการทำงานหรือขนาดการส่งมอบจะไม่สูงเกินกว่า 500 MB แม้ว่า SQLServer: ตัวนับหน่วยความจำ / เซิร์ฟเวอร์รวมหน่วยความจำเซิร์ฟเวอร์ (KB) จะแสดงสถานะ 16,732,760

มีการตั้งค่าที่จะแสดงหน่วยความจำเซิร์ฟเวอร์จริง ๆ ใน Task Manager หรือไม่? หรือเป็นผลมาจากพวกเขาเปลี่ยนวิธีการใช้หน่วยความจำใน SQL Server

คำตอบ:


25

คุณอาจไม่เคยเชื่อถือ Task Manager ที่จะบอกคุณว่าหน่วยความจำ SQL Server ใช้หน่วยความจำเท่าใด (บางทีคุณอาจจำระบบ 32- บิตที่มีหน่วยความจำน้อยมาก) หยุดใช้ตัวจัดการงานสำหรับช่วงเวลานี้ ใช้ตัวนับประสิทธิภาพ - คุณสามารถสอบถามตัวนับประสิทธิภาพโดยใช้ 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';

EXEC sp_configure 'max server memory';ยังไม่มีอยู่ใน SQL 2008
AngryHacker

@AngryHacker แน่ใจว่ามัน (เรียกว่าmax server memory (MB)แต่คุณไม่จำเป็นต้องพิมพ์สิ่งทั้งหมด) sp_configure 'show adv', 1; reconfigure with override;เพื่อที่จะดูว่าคุณจะต้องอ่านลงในข้อความแสดงข้อผิดพลาดที่จะบอกคุณเกี่ยวกับมันเป็นตัวเลือกขั้นสูงแล้ว โปรดทราบว่าคุณไม่จำเป็นต้องพิมพ์ทั้งหมด'show advanced options'ที่นี่เช่นกัน
แอรอนเบอร์ทรานด์ด์

6

@ AaronBertrand คำตอบนั้นยอดเยี่ยม นี่คือการเปลี่ยนแปลงที่มีข้อมูลเพิ่มเติมอีกเล็กน้อยจากที่นี่

SELECT
(physical_memory_in_use_kb/1024) AS Memory_usedby_Sqlserver_MB,
(locked_page_allocations_kb/1024) AS Locked_pages_used_Sqlserver_MB,
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
FROM sys.dm_os_process_memory;

นอกจากนี้ยังโพสต์บล็อกที่ดีเกี่ยวกับเหตุผลที่ TaskManager ไม่ได้ขึ้นอยู่กับงานที่นี่

และเพื่อประสิทธิภาพที่มากขึ้นและเวทมนต์ DMV คุณไม่สามารถผ่านบล็อกประสิทธิภาพ SQL ของ Glenn Berry ได้

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