1

我正在使用此查询来确定我的数据库的命中/读取值

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;

我有结果,但第一列 datname 为 NULL,并且比率最差

用户:postgres

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

这里的 null 是什么意思?

4

1 回答 1

2

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

它有一个datid= 0 ..

此数据库的 OID,或 0 表示属于共享关系的对象

..并且没有datname

此数据库的名称,或共享对象为 NULL。

于 2021-08-04T10:35:28.613 回答