sys.dm_os_memory_objects (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)

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

Примечание.

Чтобы вызвать это из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_os_memory_objects. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.

Имя столбца Тип данных Description
memory_object_address varbinary(8) Адрес объекта памяти. Не допускает значение NULL.
parent_address varbinary(8) Адрес родительского объекта памяти. Допускает значение NULL.
pages_allocated_count int Применимо: SQL Server 2008 (10.0.x) до SQL Server 2008 R2 (10.50.x).

Число страниц, выделенных данным объектом. Не допускает значение NULL.
pages_in_bytes bigint Область применения: SQL Server 2012 (11.x) и более поздних версий.

Объем памяти в байтах, выделяемый этим экземпляром объекта памяти. Не допускает значение NULL.
creation_options int Только для внутреннего применения. Допускает значение NULL.
bytes_used bigint Только для внутреннего применения. Допускает значение NULL.
type nvarchar(60) Тип объекта памяти.

Указывает компонент, которому принадлежит данный объект памяти, либо функцию объекта памяти. Допускает значение NULL.
name varchar(128) Только для внутреннего применения. Допускает значение NULL.
memory_node_id smallint Идентификатор узла памяти, используемого данным объектом памяти. Не допускает значение NULL.
creation_time datetime Только для внутреннего применения. Допускает значение NULL.
max_pages_allocated_count int Применимо: SQL Server 2008 (10.0.x) до SQL Server 2008 R2 (10.50.x).

Максимальное число страниц, выделенных данным объектом. Не допускает значение NULL.
page_size_in_bytes int Область применения: SQL Server 2012 (11.x) и более поздних версий.

Размер страниц в байтах, выделенных данным объектом. Не допускает значение NULL.
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.
partition_type int Область применения: SQL Server 2016 (13.x) и более поздних версий.

Тип секции:

0 — объект памяти, не допускающий секционирование

1 . Объект памяти с секционированием, в настоящее время не секционирован

2 . Секционируемый объект памяти, секционируемый узлом NUMA. В среде с одним узлом NUMA это эквивалентно 1.

3 . Секционируемый объект памяти, секционируемый по ЦП.
contention_factor real Область применения: SQL Server 2016 (13.x) и более поздних версий.

Значение, указывающее состязание в этом объекте памяти, при этом значение 0 не имеет значения. Значение обновляется всякий раз, когда указанное количество выделений памяти было отражено в течение этого периода. Применяется только к объектам памяти, безопасным для потоков.
waiting_tasks_count bigint Область применения: SQL Server 2016 (13.x) и более поздних версий.

Количество ожиданий для этого объекта памяти. Этот счетчик увеличивается при каждом выделении памяти из этого объекта памяти. Увеличение — это количество задач, ожидающих доступа к этому объекту памяти. Применяется только к объектам памяти, безопасным для потоков. Это лучшее значение без гарантии правильности.
exclusive_access_count bigint Область применения: SQL Server 2016 (13.x) и более поздних версий.

Указывает, как часто доступ к этому объекту памяти был доступен исключительно. Применяется только к объектам памяти, безопасным для потоков. Это лучшее значение без гарантии правильности.
pdw_node_id int Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)

Идентификатор узла, на который находится данное распределение.

partition_type, contention_factor, waiting_tasks_count и exclusive_access_count еще не реализованы в База данных SQL.

Разрешения

На SQL Server и управляемом экземпляре SQL необходимо разрешение VIEW SERVER STATE.

Для целей службы База данных SQL Basic, S0 и S1, а также для баз данных в эластичных пулах, учетной записи администратора сервера, учетной записи администратора Microsoft Entra или членства в ##MS_ServerStateReader##роли сервера требуется. Для всех остальных целей обслуживания базы данных SQL требуется разрешение VIEW DATABASE STATE в базе данных или членство в роли сервера ##MS_ServerStateReader##.

Разрешения для SQL Server 2022 и более поздних версий

Требуется разрешение VIEW SERVER PERFORMANCE 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  

См. также

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