pg_stats_activity.datname 在一条记录上为空

pg_stats_activity.datname is null on one record

我正在使用此查询来确定我的数据库的 hit/read 值

SELECT 
  datname, 
  CASE 
    WHEN blks_read = 0 THEN 0 
    ELSE blks_hit / blks_read 
  END AS ratio 
FROM 
  pg_stat_database;
  
 select * from pg_stat_database;

我有结果,但第一列数据名是 NULL,而且它的比率最差

用户:postgres

datname     |ratio  |
------------+-------+
NULL        |9984265|
template1   |      0|
template0   |      0|
postgres    |      9|
db1         |   2078|
db2         |    660|

这里的 null 是什么意思?

根据 documentationpg_stat_databases 包含与多个数据库共享的对象的记录:

它有一个 datid = 0 ..

OID of this database, or 0 for objects belonging to a shared relation

.. 并且没有 datname:

Name of this database, or NULL for the shared objects.