sys.dm_os_memory_brokers (Transact-SQL)
適用於:SQL Server Azure Synapse Analytics Analytics Platform System (PDW)
SQL Server 內部的配置會使用 SQL Server 記憶體管理員。 追蹤進程記憶體計數器與 sys.dm_os_process_memory 和內部計數器之間的差異,可以指出 SQL Server 記憶體空間中外部元件的記憶體使用量。
記憶體代理程式會根據目前和投影的使用方式,在 SQL Server 內的各種元件之間相當分散記憶體配置。 記憶體代理程式不會執行配置。 它們只會追蹤計算分配的配置。
下表提供記憶體代理程序的相關信息。
注意
若要從 Azure Synapse Analytics 或 Analytics Platform System (PDW) 呼叫此專案,請使用名稱 sys.dm_pdw_nodes_os_memory_brokers。 Azure Synapse Analytics 的無伺服器 SQL 集區不支援此語法。
資料行名稱 | 資料類型 | 描述 |
---|---|---|
pool_id | int | 如果資源集區與資源管理員集區相關聯,則為資源集區的標識符。 |
memory_broker_type | nvarchar(60) | 記憶體代理程式的類型。 SQL Server 中目前有三種類型的記憶體代理程式,其描述如下。 MEMORYBROKER_FOR_CACHE:配置供快取物件使用的記憶體(非緩衝池快取)。 MEMORYBROKER_FOR_STEAL:從緩衝池竊取的記憶體。 此記憶體會由記憶體 Clerk 追蹤,而且在目前擁有者釋放之前,無法供其他元件重複使用。 MEMORYBROKER_FOR_RESERVE:目前執行要求保留供未來使用的記憶體。 |
allocations_kb | bigint | 記憶體數量,以 KB 為單位,已配置給這種類型的訊息代理程式。 |
allocations_kb_per_sec | bigint | 每秒以 KB 為單位的記憶體配置速率。 此值對記憶體解除分配而言可以是負值。 |
predicted_allocations_kb | bigint | 由訊息代理程序預測配置的記憶體數量。 這是以記憶體使用模式為基礎。 |
target_allocations_kb | bigint | 以 KB 為單位的建議配置記憶體數量,以 KB 為單位,以目前的設定和記憶體使用量模式為基礎。 此訊息代理程式應成長為或縮小至此數位。 |
future_allocations_kb | bigint | 預計配置數目,以 KB 為單位,將在接下來數秒內完成。 |
overall_limit_kb | bigint | 訊息代理程式可以配置的記憶體數量上限,以 KB 為單位。 |
last_notification | nvarchar(60) | 根據目前設定和使用模式的記憶體使用量建議。 有效值如下所示: 成長 shrink 穩定 |
pdw_node_id | int | 適用於:Azure Synapse Analytics、Analytics Platform System (PDW) 此散發節點的標識碼。 |
權限
在 SQL Server 和 SQL 受控執行個體上,需要 VIEW SERVER STATE
權限。
在 SQL Database [Basic]、[S0] 和 [S1] 服務目標,以及彈性集區中的資料庫,需要伺服器管理員帳戶、伺服器管理員帳戶、Microsoft Entra 管理員帳戶或 ##MS_ServerStateReader##
伺服器角色的成員資格。 在所有其他 SQL Database 服務目標上,需要資料庫的 VIEW DATABASE STATE
權限或 ##MS_ServerStateReader##
伺服器角色的成員資格。
SQL Server 2022 及更新版本的權限
需要伺服器上的 VIEW SERVER PERFORMANCE STATE 權限。