openGauss 之blks_hit统计实现的代码走读

一. 前言

​         在openGauss中,select *  from pg_stat_database可以看到每个数据库缓存命中率(blks_hit)的统计,如下所示:

       本文主要走读openGauss的代码来了解openGuass是在怎样进行缓存命中率的统计的。

二.  数据库级别缓存命中率(blks_hit)统计实现流程

​        在openGuass中,每一个表(Relation)的结构体有一个字段pgstat_info,pgstat_info->t_counts中会存放着relation的各种统计信息,如元祖的读取数量,缓存的命中数量等,如下是整个代码的实现流程。

​        1. 首先在回话初始化的时候,pgstat_initstats函数会在回话中,创建pgstat_info的内存空间并且赋值给relation->pgstat_info,代码流程如下所示:

pgstat_initstats
  rel->pgstat_info = get_tabstat_entry
    hash_entry = (TabStatHashEntry*)hash_search(u_sess->stat_cxt.pgStatTabHash, &rel_key);
       return entry   // entry就是relation的pgstat_info

       2.  在读取数据块的时候,传入realtion&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值