sys.dm_os_memory_objects

返回当前由 SQL Server 分配的内存对象。sys.dm_os_memory_objects 主要用于分析内存使用并标识可能出现的内存泄漏。

列名 数据类型 说明

memory_object_address

varbinary(8)

内存对象的地址。不可为空值。

parent_address

varbinary(8)

父内存对象的地址。可为空值。

pages_allocated_count

int

由该对象分配的页数。不可为空值。

creation_options

int

仅供内部使用。可为空值。

bytes_used

bigint

仅供内部使用。可为空值。

type

nvarchar(60)

内存对象的类型。

它指示该内存对象所属的组件,或指示内存对象的函数。可为空值。

name

varchar(128)

仅供内部使用。可为空值。

memory_node_id

smallint

该内存对象所用的内存节点的 ID。不可为空值。

creation_time

datetime

仅供内部使用。NULLABLE。

page_size_in_bytes

int

由该对象分配的页的大小。不可为空值。

max_pages_allocated_count

int

由该内存对象分配的最大页数。不可为空值。

page_allocator_address

varbinary(8)

页分配器的内存地址。不可为空值。有关详细信息,请参阅 sys.dm_os_memory_clerks

creation_stack_address

varbinary(8)

仅供内部使用。可为空值。

sequence_num

int

仅供内部使用。可为空值。

权限

需要对服务器具有 VIEW SERVER STATE 权限。

备注

内存对象是指多个堆。它们所提供的分配的粒度比内存 Clerk 所提供的分配的粒度更精细。SQL Server 组件使用内存对象,而不使用内存 Clerk。内存对象使用内存 Clerk 的页分配器接口来分配页。内存对象不使用虚拟内存接口或共享内存接口。根据分配模式的不同,组件可以创建不同的内存对象类型来分配任意大小的区域。

典型的内存对象页大小为 8 KB。但是,增量内存对象的页大小的范围可以从 512 字节到 8 千字节。

ms179875.note(zh-cn,SQL.90).gif注意:
页大小不是最大分配。相反,页大小是受页分配器支持,并且由内存 Clerk 实现的分配粒度。您可以从内存对象中请求 16 KB 和更大的分配,该请求最终定向到内存节点的多页分配器。

示例

以下示例返回由每种内存对象类型分配的内存量。

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

请参阅

参考

动态管理视图和函数
与 SQL Server 操作系统相关的动态管理视图
sys.dm_os_memory_clerks

帮助和信息

获取 SQL Server 2005 帮助