sys.dm_os_memory_clerks
Возвращает набор всех клерков памяти, активных в данный момент в экземпляре SQL Server.
Имя столбца |
Тип данных |
Описание |
---|---|---|
memory_clerk_address |
varbinary(8) |
Уникальный адрес клерка памяти. Это столбец первичного ключа. Не допускает значения NULL. |
type |
nvarchar(60) |
Тип клерка памяти. Каждый клерк принадлежит к определенному типу, такому как CLR Clerks MEMORYCLERK_SQLCLR. Не допускает значения NULL. |
name |
nvarchar(256) |
Внутреннее имя, назначенное данному клерку памяти. Каждый компонент может иметь несколько клерков памяти определенного типа. Компонент может использовать определенные имена для идентификации клерков памяти одного и того же типа. Не допускает значения NULL. |
memory_node_id |
smallint |
Идентификатор узла памяти. Не допускает значения NULL. |
single_pages_kb |
bigint |
Объем выделенной одностраничной памяти в килобайтах (KБ). Это объем памяти, выделенной с помощью механизма распределения одиночных страниц узла памяти. Этот механизм распределения одиночных страниц захватывает страницы непосредственно из буферного пула. Не допускает значения NULL. |
multi_pages_kb |
bigint |
Объем выделенной многостраничной памяти в КБ. Это объем памяти, выделенной с помощью механизма распределения множества страниц узлов памяти. Эта память выделяется вне буферного пула и использует преимущества виртуального механизма распределения узлов памяти. Не допускает значения NULL. |
virtual_memory_reserved_kb |
bigint |
Объем виртуальной памяти, зарезервированной клерком памяти. Это объем памяти, зарезервированной непосредственно компонентом, использующим клерк. В большинстве ситуаций виртуальное адресное пространство резервируется непосредственно только буферным пулом, использующим свой клерк памяти. Не допускает значения NULL. |
virtual_memory_committed_kb |
bigint |
Объем виртуальной памяти, зафиксированной клерком памяти. Это объем памяти, зафиксированной клерком. Объем зафиксированной памяти должен всегда быть меньше объема зарезервированной памяти. Не допускает значения NULL. |
awe_allocated_kb |
bigint |
Объем памяти, выделенной клерком памяти с помощью расширений AWE. В SQL Server этот механизм используется только клерками буферного пула (MEMORYCLERK_SQLBUFFERPOOL) и только в случае, если расширения AWE включены. Не допускает значения NULL. |
shared_memory_reserved_kb |
bigint |
Объем общей памяти, зарезервированной клерком памяти. Объем памяти, зарезервированной для использования при сопоставлении общей памяти и файлов. Не допускает значения NULL. |
shared_memory_committed_kb |
bigint |
Объем общей памяти, зафиксированной клерком памяти. Не допускает значения NULL. |
page_size_bytes |
bigint |
Размер страницы, которую может выделить клерк памяти. Поддерживается только один размер — 8 192 байт. Не допускает значения NULL. |
page_allocator_address |
varbinary(8) |
Адрес механизма распределения страниц. Этот адрес уникален для клерка памяти и может использоваться в представлении sys.dm_os_memory_objects для поиска объектов памяти, связанных с данным клерком. Не допускает значения NULL. |
host_address |
varbinary(8) |
Адрес памяти, по которому размещается данный клерк памяти. Дополнительные сведения см. в разделе sys.dm_os_hosts. Такие компоненты, как собственный клиент Microsoft SQL Server, получают доступ к ресурсам памяти SQL Server через интерфейс узла. 0x00000000 = Клерк памяти принадлежит SQL Server. Не допускает значения NULL. |
Разрешения
Требует разрешения VIEW SERVER STATE на сервере.
Замечания
Диспетчер памяти SQL Server имеет трехуровневую иерархию. В нижней части иерархии располагаются узлы памяти. Следующий уровень содержит клерки, кэш и пулы памяти. Последний уровень содержит объекты памяти. Эти объекты обычно используются для выделения памяти в экземпляре SQL Server.
Узлы памяти обеспечивают интерфейс и реализацию низкоуровневых механизмов выделения. В пределах SQL Server доступ к узлам памяти имеют только клерки памяти. Клерки памяти получают доступ к интерфейсам узлов памяти для ее выделения. Узлы памяти также ведут слежение за выделяемой клерками памятью в целях диагностики. Каждый компонент, выделяющий значительный объем памяти, должен создать свой клерк памяти и выделить необходимую ему память с помощью интерфейсов клерка. Компоненты создают соответствующие им клерки во время запуска SQL Server.
См. также