Updated on 2025-10-10 GMT+08:00

Memory Management Functions

This function is supported only by cluster versions 9.1.0 and later.

pg_shared_chunk_detail(contextname char(64))

Description: Queries information about all chunks requested by the memory context in a specified shared memory.

The contextname parameter indicates the name of the memory context.

Before using this function, use the pg_shared_chunk_dump(contextname char(64)) function to print related information to a file.

Return type: record

Example:

1
2
3
4
5
6
7
8
SELECT * FROM pg_shared_chunk_detail('pgstat file hash table');
       parent        | level |  file_name   | line_number | chunk_size | requested_number | total_size 
---------------------+-------+--------------+-------------+------------+------------------+------------
 pgstat file context |     2 | dynahash.cpp |         158 |       2048 |                1 |       2048
 pgstat file context |     2 | dynahash.cpp |         158 |        256 |                1 |        256
 pgstat file context |     2 | dynahash.cpp |         158 |       4096 |                9 |      36864
 pgstat file context |     2 | dynahash.cpp |         158 |       8192 |                4 |      32768
(4 rows)

pv_session_chunk_detail(tid int, contextname char(64))

Description: Queries information about all chunks applied for by a memory context created by a specified thread.

The tid parameter indicates the thread ID, while the contextname parameter indicates the memory context name.

To use this function, you need to use the pv_session_chunk_dump(tid int, contextname char(64)) function to print related information to a file.

Return type: record

Example:

1
2
3
4
5
6
7
8
9
SELECT * FROM pv_session_chunk_detail(140178810990936, 'Timezones');
      parent      | level |   file_name   | line_number | chunk_size | requested_number | total_size 
------------------+-------+---------------+-------------+------------+------------------+------------
 TopMemoryContext |     1 | dynahash.cpp  |         158 |       1280 |                2 |       2560
 TopMemoryContext |     1 | dynahash.cpp  |         158 |        160 |                1 |        160
 TopMemoryContext |     1 | dynahash.cpp  |         158 |       2560 |                2 |       5120
 TopMemoryContext |     1 | localtime.cpp |        1965 |        128 |                1 |        128
 TopMemoryContext |     1 | localtime.cpp |        1965 |        448 |                1 |        448
(5 rows)

pg_shared_chunk_dump(contextname char(64))

Description: Prints information about all chunks applied for by the memory context in the specified shared memory as a file.

The contextname parameter indicates the name of the memory context.

Return type: Boolean

Example:

1
2
3
4
5
SELECT * FROM pg_shared_chunk_dump('pgstat file hash table');
 pg_shared_chunk_dump 
----------------------
         t
(1 row)

pv_session_chunk_dump(tid int, contextname char(64))

Description: Prints information about all chunks applied for by a memory context created by a specified thread into a file.

The tid parameter indicates the thread ID, while the contextname parameter indicates the memory context name.

Return type: Boolean

Example:

1
2
3
4
5
SELECT * FROM pv_session_chunk_dump(140472797325280, 'Timezones');
 pv_session_chunk_dump 
-----------------------
 t
(1 row)

gs_print_memory_profiling()

Description: Prints memory collection details. This function is available only for clusters of version 9.1.1.100 or later.

Return type: Boolean

Example:

1
2
3
4
5
SELECT * FROM gs_print_memory_profiling();
 gs_print_memory_profiling 
----------------------------
 t
(1 row)

gs_gsc_dbstat_info(database_id bigint DEFAULT NULL::bigint)

Description: Queries the statistics of Global SysCache on the current node, such as the SysCache cache hit information and LRU-based eviction. This function is available only for clusters of version 9.1.1.100 or later.

The parameter database_id indicate the database OID.

  • When database_id is left blank, statistics about all databases are queried.
  • When database_id is 0, the statistics of the shared database are queried.
  • When database_id is a valid database OID, the statistics of the shared database and the database are queried.

Return type: record

Return columns:

Column

Type

Description

database_id

BIGINT

Database OID

database_name

TEXT

Database name

tup_searches

BIGINT

Number of system catalog cache searches

tup_hits

BIGINT

Number of system catalog cache hits

tup_miss

BIGINT

Number of table scans triggered by system catalog cache misses.

tup_swapout_count

BIGINT

Number of tuples evicted by LRU

tup_count

BIGINT

Number of tuples in the cache

tup_dead

BIGINT

Number of tuples in the garbage queue

tup_memory

BIGINT

Total memory of tuples in the cache

total_memory

BIGINT

Total memory of the Global SysCache

refcount

BIGINT

Number of times that Global SysCache is referenced by threads.

Example:

1
2
3
4
5
6
SELECT * FROM gs_gsc_dbstat_info();
 database_id | database_name | tup_searches | tup_hits | tup_miss | tup_swapout_count | tup_count | tup_dead | tup_memory | total_memory | refcount
-------------+---------------+--------------+----------+----------+-------------------+-----------+----------+------------+--------------+----------
           0 |               |        12474 |     9876 |       14 |                 0 |        16 |        0 |      12560 |       697664 |        0
       17185 | postgres      |        10156 |     5521 |     2223 |                 0 |      1398 |        0 |     752296 |      4417856 |       11
(2 rows)

gs_gsc_clean(database_id bigint DEFAULT NULL::bigint)

Description: Clears the Global SysCache of a specified database. This function is available only for clusters of version 9.1.1.100 or later.

The parameter database_id indicate the database OID.

  • When database_id is left blank, the memory of all databases is cleared.
  • When database_id is 0, the memory of the shared databases is cleared.
  • When database_id is a valid database OID, the memory of both the shared databases and the specified database is cleared.

Return type: bool

Example:

1
2
3
4
5
SELECT * FROM gs_gsc_clean();
 gs_gsc_clean
--------------
 t
(1 row)