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


sys.dm_os_memory_objects (Transact-SQL)

Возвращает объекты памяти, выделенные в настоящий момент сервером SQL Server. Вы можете использовать представление sys.dm_os_memory_objects для анализа использования памяти и для выявления возможных утечек памяти.

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Имя столбца

Тип данных

Описание

memory_object_address

varbinary(8)

Адрес объекта памяти. Не допускает значения NULL.

parent_address

varbinary(8)

Адрес родительского объекта памяти. Допускает значение NULL.

pages_allocated_count

int

Число страниц, выделенных данным объектом. Не допускает значения NULL.

Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2008 R2 включительно.

pages_in_bytes

bigint

Объем памяти в байтах, выделяемый этим экземпляром объекта памяти. Не допускает значения NULL.

Применимо для следующих объектов: С SQL Server 2012 по SQL Server 2014 включительно.

creation_options

int

Только для внутреннего применения. Допускает значение NULL.

bytes_used

bigint

Только для внутреннего использования. Допускает значение NULL.

тип

nvarchar(60)

Тип объекта памяти.

Указывает компонент, которому принадлежит данный объект памяти, либо функцию объекта памяти. Допускает значение NULL.

name

varchar(128)

Только для внутреннего использования. Допускает значение NULL.

memory_node_id

smallint

Идентификатор узла памяти, используемого данным объектом памяти. Не допускает значения NULL.

creation_time

datetime

Только для внутреннего применения. Допускает значение NULL.

max_pages_allocated_count

int

Максимальное число страниц, выделенных данным объектом. Не допускает значения NULL.

Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2008 R2 включительно.

page_size_in_bytes

int

Размер страниц в байтах, выделенных данным объектом. Не допускает значения NULL.

Применимо для следующих объектов: С SQL Server 2012 по SQL Server 2014 включительно.

max_pages_in_bytes

bigint

Максимальный объем памяти, который когда-либо использовался данным объектом памяти. Не допускает значения NULL.

page_allocator_address

varbinary(8)

Адрес средства выделения страниц в памяти. Не допускает значения NULL. Дополнительные сведения см. в разделе sys.dm_os_memory_clerks (Transact-SQL).

creation_stack_address

varbinary(8)

Только для внутреннего использования. Допускает значение NULL.

sequence_num

int

Только для внутреннего использования. Допускает значение NULL.

Разрешения

Необходимо разрешение VIEW SERVER STATE на сервере.

Замечания

Объекты памяти представляют собой кучи. Они обеспечивают выделение памяти с большей точностью, чем клерки памяти. Компоненты SQL Server используют вместо клерков памяти объекты памяти. Объекты памяти для выделения страниц используют интерфейс средства выделения памяти от клерка памяти. Виртуальные или общие интерфейсы памяти объектами памяти не используются. В зависимости от шаблонов выделения памяти компоненты могут создавать различные типы объектов для выделения областей памяти произвольного размера.

Стандартный размер страницы для объекта памяти равен 8 КБ. Однако для добавочных объектов памяти размеры страниц могут варьироваться от 512 байт до 8 килобайт.

Примечание

Размер страницы не означает максимально возможный размер выделенной памяти.Он представляет собой гранулярность выделения страниц, поддерживаемую средством выделения и реализуемую клерком памяти.От объекта памяти можно запросить выделение объема свыше 8 килобайт.

Примеры

В следующем примере возвращается объем памяти, выделенный каждым типом объектов памяти.

SELECT SUM (pages_in_bytes) as 'Bytes Used', type 
FROM sys.dm_os_memory_objects
GROUP BY type 
ORDER BY 'Bytes Used' DESC;
GO

См. также

Справочник

Динамические административные представления и функции (Transact-SQL)

Динамические административные представления, относящиеся к операционной системе SQL Server (Transact-SQL)

sys.dm_os_memory_clerks (Transact-SQL)