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。
|
|
pages_in_bytes |
bigint |
這個記憶體物件執行個體所配置的記憶體數量 (以位元組為單位)。 不可為 Null。
|
|
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。
|
|
page_size_in_bytes |
int |
這個物件所配置的頁面大小 (以位元組為單位)。 不可為 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。 |
權限
需要伺服器的 VIEW SERVER STATE 權限。
備註
記憶體物件是堆積。 它們提供的配置比記憶體 Clerk 所提供的配置資料粒度更細。 SQL Server 元件會使用記憶體物件來取代記憶體 Clerk。 記憶體物件使用記憶體 Clerk 頁面配置器介面來配置頁面。 記憶體物件不使用虛擬或共用記憶體介面。 隨著配置模式的不同,元件可以建立不同類型的記憶體物件,來配置任意大小的頁面。
記憶體物件一般的頁面大小是 8 KB。 然而,累加記憶體物件的頁面大小範圍從 512 位元組到 8 KB 不等。
注意
頁面大小不是最大配置。相對的,頁面大小是頁面配置器支援、記憶體 Clerk 實作的配置資料粒度。您可以從記憶體物件要求大於 8 KB 的配置。
範例
下列範例會傳回各記憶體物件類型配置的記憶體數量。
SELECT SUM (pages_in_bytes) as 'Bytes Used', type
FROM sys.dm_os_memory_objects
GROUP BY type
ORDER BY 'Bytes Used' DESC;
GO