sys.dm_os_memory_clerks (Transact-SQL)
Возвращает набор всех клерков памяти, активных в данный момент в экземпляре 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 недопустимо. |
pages_kb |
bigint |
Устанавливает объем страничной памяти (в килобайтах), выделяемый для этого клерка памяти. Значение NULL недопустимо. |
virtual_memory_reserved_kb |
bigint |
Указывает объем виртуальной памяти, зарезервированной клерком памяти. Значение NULL недопустимо. |
virtual_memory_committed_kb |
bigint |
Указывает объем виртуальной памяти, зафиксированной клерком памяти. Объем зафиксированной памяти должен всегда быть меньше объема зарезервированной памяти. Значение NULL недопустимо. |
awe_allocated_kb |
bigint |
Указывает объем физической памяти (в КБ), заблокированной в физической памяти и не выгруженной операционной системой. Значение NULL недопустимо. |
shared_memory_reserved_kb |
bigint |
Указывает объем общей памяти, зарезервированной клерком памяти. Объем памяти, зарезервированной для использования при сопоставлении общей памяти и файлов. Значение NULL недопустимо. |
shared_memory_committed_kb |
bigint |
Указывает объем общей памяти, зафиксированной клерком памяти. Значение NULL недопустимо. |
page_size_in_bytes |
bigint |
Указывает гранулярность выделения страниц для этого клерка памяти. Значение NULL недопустимо. |
page_allocator_address |
varbinary(8) |
Указывает адрес средства выделения страниц. Этот адрес уникален для клерка памяти и может использоваться в представлении sys.dm_os_memory_objects для поиска объектов памяти, связанных с данным клерком. Значение NULL недопустимо. |
host_address |
varbinary(8) |
Указывает адрес памяти, по которому размещается данный клерк памяти. Дополнительные сведения см. в разделе sys.dm_os_hosts (Transact-SQL). Такие компоненты, как собственный клиент MicrosoftSQL Server, получают доступ к ресурсам памяти SQL Server через интерфейс узла. 0x00000000 = Клерк памяти принадлежит SQL Server. Не допускает значения NULL. |
Разрешения
Необходимо разрешение VIEW SERVER STATE на сервере.
Замечания
Диспетчер памяти SQL Server имеет трехуровневую иерархию. В нижней части иерархии располагаются узлы памяти. Средний уровень содержит клерки, кэш и пулы памяти. Верхний уровень содержит объекты памяти. Эти объекты обычно используются для выделения памяти в экземпляре SQL Server.
Узлы памяти обеспечивают интерфейс и реализацию низкоуровневых механизмов выделения. В пределах SQL Server доступ к узлам памяти имеют только клерки памяти. Клерки памяти получают доступ к интерфейсам узлов памяти для ее выделения. Узлы памяти также ведут слежение за выделяемой клерками памятью в целях диагностики. Каждый компонент, выделяющий значительный объем памяти, должен создать свой клерк памяти и выделить необходимую ему память с помощью интерфейсов клерка. Часто компоненты создают соответствующие им клерки во время запуска SQL Server.
Поддержка совместимости
В SQL Server 2012 следующие столбцы были переименованы.
Предыдущее имя столбца |
Новое имя столбца |
---|---|
single_pages_kb |
pages_kb |
В SQL Server 2012 столбец multi_pages_kb был удален.
См. также
Справочник
Динамические административные представления и функции (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)
sys.dm_exec_requests (Transact-SQL)