Поделиться через


SQL Server, объект Memory Manager

Область применения: SQL Server

Объект Memory Manager в Microsoft SQL Server предоставляет счетчики для мониторинга общего использования памяти сервера. Контроль над использованием памяти всего сервера для оценки действий пользователя и использования ресурсов может помочь идентифицировать нехватку производительности. Мониторинг памяти, используемой экземпляром SQL Server, может помочь определить:

  • существуют ли нехватки в недостаточной физической памяти для хранения в кэше часто используемых данных. Если память не является недостаточной, SQL Server должен получить данные с диска.

  • Если производительность запросов можно улучшить, добавив больше памяти или сделав больше памяти доступной для кэша данных или внутренних структур SQL Server.

Счетчики диспетчера памяти

В этой таблице описываются счетчики диспетчера памяти SQL Server.

SQL Server, счетчики диспетчера памяти Description
Память соединения (КБ) Указывает общий объем динамической памяти, которую использует сервер для обслуживания соединений.
Кэш-память базы данных (КБ) Указывает объем памяти, который используется в настоящий момент сервером для кэша страниц базы данных.
Внешнее преимущество памяти Внутренняя оценка преимущества производительности из-за добавления памяти в конкретный кэш. Он применяется в подсистеме для балансировки использования памяти между кэшем и полезен при устранении неполадок в случаях непредвиденного увеличения размера кэша. Значение имеет вид целого числа, основанного на внутреннем вычислении.
Свободная память (КБ) Указывает объем общей зафиксированной памяти, не используемой в настоящий момент сервером.
Выделенная память для рабочей области (КБ) Указывает общий объем памяти, предоставленный в настоящее время для выполнения процессов, таких как хэширование, сортировка, массовое копирование и создание индекса.
Блоки блокировки Указывает текущее количество блоков блокировки, использующихся на сервере (периодически обновляется). Блок блокировки представляет конкретный ресурс блокировки, например таблицу, страницу или строку.
Выделенные блоки блокировки Указывает текущее количество выделенных блоков блокировки. При запуске сервера количество выделенных блоков блокировки и количество выделенных блоков владельца блокировки зависит от параметра конфигурации блокировки SQL Server. Если необходимо большее количество блоков блокировки, значение увеличивается.
Память блокировки (КБ) Указывает общий объем динамической памяти, которую сервер использует для блокировок.
Блоки владельца блокировки Указывает количество блоков владельца блокировки, использующихся в настоящее время на сервере (периодически обновляется). Блокировки владельцев блоков представляют владение блокировки объекта отдельным потоком. Таким образом, если все три потока имеют общую (S) блокировку страницы, будет три блока владельца блокировки.
Выделенные блоки владельца блокировки Указывает текущее количество выделенных блоков владельца блокировки. При запуске сервера количество выделенных блоков владельца блокировки и количество выделенных блоков блокировки зависят от параметра конфигурации блокировки SQL Server. Если необходимо большее количество блоков владельца блокировки, значение увеличивается.
Память пула журнала (КБ) Общий объем динамической памяти, используемой сервером для пула журналов.
Максимальный размер памяти рабочей области (КБ) Указывает максимальный объем памяти, доступный для выполнения процессов, таких как хэширование, сортировка, массовое копирование и создание индекса.
Необработанных запросов на предоставление памяти Указывает общее число процессов, успешно получивших память рабочей области.
Ожидающих запросов на предоставление памяти Указывает общее число процессов, ожидающих предоставления памяти рабочей памяти.
Память оптимизатора (КБ) Указывает общий объем динамической памяти, которую использует сервер для оптимизации запросов.
Зарезервированная память сервера (КБ) Указывает общий объем памяти, зарезервированный для будущих нужд. Этот счетчик показывает неиспользуемую в данный момент долю изначально выделенного объема памяти, указанного в графе Выделенная память для рабочей области (КБ).
Кэш-память SQL (КБ) Указывает общий объем динамической памяти, которую использует сервер для динамического кэша SQL.
Заимствованная память сервера (КБ) Указывает объем памяти, который используется в настоящий момент сервером не для страниц базы данных, а для других целей.
Память целевого сервера (КБ) Указывает идеальный объем памяти, необходимый серверу.
Общая память сервера (КБ) Указывает объем памяти, выделенный серверу диспетчером памяти.

Пример

Вы начинаете изучать счетчики производительности запросов в этом объекте, используя этот запрос T-SQL в динамическом административном представлении sys.dm_os_performance_counters:

SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Memory Manager%';