他のバージョンの文書 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

53.5. pg_backend_memory_contexts #

pg_backend_memory_contextsビューは、現在のセッションにアタッチされているサーバプロセスのすべてのメモリコンテキストを表示します。

pg_backend_memory_contextsの各1行が各々のメモリコンテキストを格納します。

表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_backend_memory_contextsビューはスーパーユーザか、pg_read_all_statsロールの権限を持つユーザのみが読み取り専用でアクセスできます。

メモリコンテキストは問い合わせの実行中に作成および破棄されるため、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がビューの両方の評価で一致するようにします。