2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17 / 16 / 15 / 14
開發版本: devel

53.5. pg_backend_memory_contexts #

檢視 pg_backend_memory_contexts 顯示了連線到當前會話的伺服器程序的所有記憶體上下文。

pg_backend_memory_contexts 為每個記憶體上下文包含一行。

表 53.5. pg_backend_memory_contexts

列 型別

描述

name text

記憶體上下文的名稱

ident text

記憶體上下文的標識資訊。此欄位最多截斷為 1024 位元組。

type text

記憶體上下文的型別

level int4

上下文在記憶體上下文層次結構中的 1 基級別。上下文的級別也顯示了該上下文在 path 列中的位置。

path int4[]

用於描述記憶體上下文層次結構的瞬時數值識別符號陣列。第一個元素是 TopMemoryContext,後續元素包含中間父級,最後一個元素包含當前上下文的識別符號。

total_bytes int8

為該記憶體上下文分配的總位元組數

total_nblocks int8

為該記憶體上下文分配的總塊數

free_bytes int8

空閒空間(位元組)

free_chunks int8

空閒塊的總數

used_bytes int8

已用空間(位元組)


預設情況下,只有超級使用者或具有 pg_read_all_stats 角色許可權的角色才能讀取 pg_backend_memory_contexts 檢視。

由於記憶體上下文在查詢執行時會被建立和銷燬,因此 path 列中儲存的識別符號在同一查詢的多次檢視呼叫之間可能不穩定。下面的示例演示了該列的有效用法,並計算了 CacheMemoryContext 及其所有子節點使用的總位元組數。

WITH memory_contexts AS (
    SELECT * FROM pg_backend_memory_contexts
)
SELECT sum(c1.total_bytes)
FROM memory_contexts c1, memory_contexts c2
WHERE c2.name = 'CacheMemoryContext'
AND c1.path[c2.level] = c2.path[c2.level];

公共表表達式 用於確保 path 列中的上下文 ID 在檢視的兩次評估之間匹配。

提交更正

如果您在文件中發現任何不正確的內容、與您對特定功能的體驗不符的內容或需要進一步澄清的內容,請使用 此表單 報告文件問題。