sys.dm_os_memory_brokers
Внутреннее распределение памяти в SQL Server осуществляется с помощью диспетчера памяти SQL Server. Объем использования внешними компонентами адресного пространства памяти SQL Server можно определить путем нахождения разности между значениями счетчиков памяти из представления sys.dm_os_process_memory и значениями внутренних счетчиков.
Брокеры памяти должным образом распределяют выделяемые объемы памяти между различными компонентами SQL Server, основываясь на текущем и прогнозируемом использовании. Брокеры памяти не осуществляют выделение памяти. Ими выполняется только отслеживание операций выделения памяти с целью вычисления необходимого распределения.
Сведения о брокерах памяти приведены в следующей таблице.
Имя столбца |
Тип данных |
Описание |
---|---|---|
memory_broker_type |
nvarchar(60) |
Тип брокера памяти. В настоящее время в SQL Server существуют три типа брокеров памяти.
ЗначениеОписание
MEMORYBROKER_FOR_CACHEПамять, выделяемая для использования кэшированными объектами.
MEMORYBROKER_FOR_STEALПамять, заимствованная из буферного пула. Эта память недоступна для повторного использования другими компонентами до тех пор, пока она не будет освобождена текущим владельцем.
MEMORYBROKER_FOR_RESERVEПамять, зарезервированная для будущего использования запросами, выполняемыми в настоящий момент.
|
allocations_kb |
bigint |
Объем памяти, в килобайтах (КБ), выделенный для этого типа брокера. |
allocations_per_sec |
int |
Текущая частота операций выделения памяти, свойственная этому брокеру. |
target_allocations_kb |
bigint |
Рекомендуемый объем выделенной памяти, в килобайтах (КБ), основанный на текущих параметрах и закономерностях использования памяти. Этот брокер должен быть приведен к указанному объему путем сокращения или увеличения используемого им объема выделенной памяти. |
future_allocations_kb |
bigint |
Прогнозируемое количество памяти, в килобайтах (КБ), которое будет выделено в течение следующих нескольких секунд. |
last_notification |
nvarchar(60) |
Рекомендация по использованию памяти, основанная на текущих параметрах и закономерностях использования памяти. Допустимы следующие значения:
|
pool_id |
int |
Идентификатор пула ресурсов, если он связан с пулом регулятора ресурсов. |
allocations_kb_per_sec |
bigint |
Интенсивность операций выделения памяти, в килобайтах (КБ) в секунду. Это значение может быть отрицательным для операций освобождения выделенной памяти. |
predicated_allocations_kb |
bigint |
Прогнозируемый объем выделенной памяти для брокера. Основывается на закономерности использования памяти. |
overall_limit_kb |
bigint |
Максимальный объем памяти, в килобайтах (КБ), который может быть выделен брокером. |
Разрешения
Требует разрешения VIEW SERVER STATE на сервере.