sys.dm_os_memory_objects (Transact-SQL)
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform 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)