Вы НИКОГДА, НИКОГДА не могли доверять диспетчеру задач, чтобы сообщить вам, сколько памяти использует 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.max server memory (MB)
но вам не нужно вводить все это). Чтобы увидеть его, вам нужно прочитать сообщение об ошибке, в котором говорится, что это расширенный параметр, а затемsp_configure 'show adv', 1; reconfigure with override;
. Обратите внимание, что вам также не нужно вводить все'show advanced options'
здесь.@ Ответ Аарона Бертранда отличный. Вот вариант с немного большей информацией отсюда
Кроме того, хороший блог о том, почему TaskManager не до задачи здесь .
И для большей производительности и волшебства DMV вы не можете пройти мимо блога Glenn Berry по производительности SQL
источник