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)

Рекомендация по использованию памяти, основанная на текущих параметрах и закономерностях использования памяти. Допустимы следующие значения:

  • grow

  • shrink

  • stable

pool_id

int

Идентификатор пула ресурсов, если он связан с пулом регулятора ресурсов.

allocations_kb_per_sec

bigint

Интенсивность операций выделения памяти, в килобайтах (КБ) в секунду. Это значение может быть отрицательным для операций освобождения выделенной памяти.

predicated_allocations_kb

bigint

Прогнозируемый объем выделенной памяти для брокера. Основывается на закономерности использования памяти.

overall_limit_kb

bigint

Максимальный объем памяти, в килобайтах (КБ), который может быть выделен брокером.

Разрешения

Требует разрешения VIEW SERVER STATE на сервере.