pg_buffercache

一个 contrib 模块,提供有关共享缓冲区缓存的统计信息

pg_buffercache 是一个 contrib 模块,它提供有关共享缓冲区缓存的实时统计信息。

pg_buffercachePostgreSQL 8.1 中添加。

扩展对象

pg_buffercache 提供了一个函数 pg_buffercache_pages(),以及一个方便的视图 pg_buffercache,用于返回有关服务器共享缓冲区缓存状态的信息。

视图和扩展都将为每个共享缓冲区返回一个记录。请注意,可能会为另一个数据库正在使用的缓冲区返回记录。

PostgreSQL 16 开始,还提供了以下函数:

  • pg_buffercache_summary()
  • pg_buffercache_usage_counts()

PostgreSQL 17 开始,还提供了以下开发函数:

  • pg_buffercache_evict()

变更历史

示例

获取特定表的示例输出

postgres=# SELECT * FROM pg_buffercache WHERE relfilenode = pg_relation_filenode('foo') LIMIT 1\x\g\x

-[ RECORD 1 ]----+------
bufferid         | 1962
relfilenode      | 19246
reltablespace    | 1663
reldatabase      | 11134
relforknumber    | 0
relblocknumber   | 0
isdirty          | f
usagecount       | 5
pinning_backends | 0

仅提取当前数据库中表的记录的查询

    SELECT n.nspname, c.relname, bc.*
      FROM pg_buffercache bc
INNER JOIN pg_class c ON c.oid=pg_filenode_relation(bc.reltablespace, bc.relfilenode)
INNER JOIN pg_namespace n ON c.relnamespace = n.oid
     WHERE bc.reldatabase = (SELECT oid FROM pg_database WHERE datname = current_database())
  ORDER BY 1,2;

分类

Contrib 模块, 数据一致性和取证, 扩展, PostgreSQL 内部机制

反馈

有关“pg_buffercache”的任何评论、建议或更正,请在此 提交