sys.dm_os_memory_objects (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

傳回 SQL Server 目前配置的記憶體物件。 您可以使用 sys.dm_os_memory_objects 來分析記憶體使用量,並識別可能的記憶體流失。

注意

若要從 Azure Synapse Analytics 或 Analytics Platform System (PDW) 呼叫此專案,請使用名稱 sys.dm_pdw_nodes_os_memory_objects 。 Azure Synapse Analytics 的無伺服器 SQL 集區不支援此語法。

資料行名稱 資料類型 描述
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 - 可分割的記憶體物件,由 CPU 進行分割。
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 資料庫基本、S0 S1 服務目標上,以及彈性集 區中的 資料庫, 需要伺服器管理員 帳戶、 Microsoft Entra 系統管理員 帳戶或伺服器角色 的成員 ##MS_ServerStateReader## 資格。 在所有其他 SQL Database 服務目標上,需要資料庫的 VIEW DATABASE STATE 權限或 ##MS_ServerStateReader## 伺服器角色的成員資格。

SQL Server 2022 及更新版本的權限

需要伺服器上的 VIEW SERVER PERFORMANCE 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  

另請參閱

SQL Server 作業系統相關動態管理檢視 (Transact-SQL)
sys.dm_os_memory_clerks (Transact-SQL)