Быстрый просмотр того, сколько оперативной памяти выделено для SQL Server?

15

С SQL Server 2005 вы могли бы взглянуть на диспетчер задач и, по крайней мере, получить беглый взгляд на то, сколько памяти выделено для SQL Server.

В SQL Server 2008 рабочий набор или размер фиксации никогда не превышают 500 МБ, хотя счетчик перфектов SQLServer: Memory Manager / Total Server Memory (KB) имеет значения 16 732 760.

Есть ли настройка, где он будет отображать память сервера в диспетчере задач? Или это результат того, как они меняют способ использования памяти в SQL Server?

AngryHacker
источник

Ответы:

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

@ Ответ Аарона Бертранда отличный. Вот вариант с немного большей информацией отсюда

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 вы не можете пройти мимо блога Glenn Berry по производительности SQL

Рори
источник