Швидкий погляд на те, скільки оперативної пам’яті виділяється на SQL Server?


15

За допомогою SQL Server 2005 ви можете подивитися на диспетчер завдань і, принаймні, ознайомитися з тим, як коротко ознайомитись з тим, скільки пам'яті виділяється на SQL Server.

У SQL Server 2008 розмір робочого набору або фіксування ніколи насправді не перевищує 500 МБ, навіть якщо лічильник даних SQLServer: Менеджер пам’яті / Загальна пам'ять сервера (КБ) становить 16 732 760.

Чи є налаштування, де воно фактично відображатиме пам’ять сервера в диспетчері завдань? Або це результат того, що вони змінюють спосіб використання пам'яті в SQL Server

Відповіді:


25

Ви НІКОЛИ не зможете ніколи довіряти диспетчеру завдань, щоб повідомити, скільки пам'яті використовує 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 Performance Glenn Berry Glenn Berry

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.