对pg_buffercache 的利用实验

简介:

先看有没有脏数据:

postgres=# select isdirty from pg_buffercache where isdirty='t';
isdirty 
---------
(0 rows)

此时尚未有脏数据。

进一步确认:

postgres=# select count(*) from pg_buffercache where isdirty='f';
count 
-------
180
(1 row)

postgres=# select count(*) from pg_buffercache where isdirty='t';
count 
-------
0
(1 row)

为f 的个数是180, 为t的个数仍然为零。

postgres=# select count(*) from pg_buffercache;
count 
-------
4096
(1 row)

有一部分数据是空的。这可能象征着buffer中尚未被使用的数据区域。

建表,插入数据, 再看有没有脏数据,这是有了17条。

但是一旦关联 pg_class, 发现一条也无,估计是一些内部数据,暂时不理:

postgres=# create table testtab(id integer, val varchar(10));
CREATE TABLE
postgres=# insert into testtab values(1,'12345');
INSERT 0 1
postgres=# select count(*) from pg_buffercache where isdirty='t';
count 
-------
17
(1 row)

 


postgres=# select c.relname from pg_buffercache b, pg_class c where b.relfilenode=c.relfilenode and b.isdirty='t';
relname 
---------
(0 rows)

postgres=# select c.relname from pg_buffercache b, pg_class c where b.relfilenode=c.relfilenode;
relname 
-----------------------------------
pg_statistic
pg_statistic
pg_amop_fam_strat_index
pg_amop_fam_strat_index
pg_amop_fam_strat_index
pg_amop_opr_fam_index
pg_amop_opr_fam_index
pg_amop_opr_fam_index
pg_amproc_fam_proc_index
pg_amproc_fam_proc_index
pg_amproc_fam_proc_index
pg_aggregate_fnoid_index
pg_aggregate_fnoid_index
pg_cast_source_target_index
pg_cast_source_target_index
testtab
pg_index_indrelid_index
pg_index_indrelid_index
pg_index_indexrelid_index
pg_index_indexrelid_index
pg_operator_oid_index

.....

再来修改数据,看脏数据有否:

postgres=# select * from testtab;
id | val 
----+-------
1 | 12345
(1 row)

postgres=# update testtab set val='45678' where id=1;
UPDATE 1
postgres=# select c.relname from pg_buffercache b, pg_class c where b.relfilenode=c.relfilenode and b.isdirty='t';
relname 
---------
testtab
(1 row)

postgres=#

脏数据确实产生了。







本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/10/25/2738682.html,如需转载请自行联系原作者

目录
相关文章
|
SQL 数据可视化 安全
免费的可视化Web报表工具,JimuReport v1.4.4-beta版本发布
积木报表,一款免费的可视化Web报表工具,像搭建积木一样在线拖拽设计!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! 秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、节省成本、解决各类报表难题,完全免费的!
686 0
|
数据可视化 定位技术
地图可视化开发技巧:geojson转svg后再转emf格式插入ppt实现编辑的解决方案
地图可视化开发技巧:geojson转svg后再转emf格式插入ppt实现编辑的解决方案
474 0
|
JavaScript 安全 数据安全/隐私保护
JS逆向 -- 分析某站aid、cid、w_rid和sid的加密过程
JS逆向 -- 分析某站aid、cid、w_rid和sid的加密过程
483 1
|
存储 分布式计算 大数据
阿里云大数据ACA及ACP复习题(311~320)
本人备考阿里云大数据考试时自行收集准备的题库,纯手工整理的,能够覆盖到今年7月份,应该是目前最新的,发成文章希望大家能一起学习,不要花冤枉钱去买题库背了,也希望大家能够顺利通关ACA和ACP考试。
|
运维 Kubernetes 前端开发
业务中台之上的低代码应用开发平台
中台低代码平台帮助开发者掌握全栈能力,促进开发者提高工作效率,基于企业数字化业务能力组件,可以实现业务应用的敏捷按需装配,成为企业组装式应用创新平台,进而实现企业业务能力的持续优化和复用,促进从组织到企业甚至行业的业务能力集约与创新。
业务中台之上的低代码应用开发平台
|
编解码 人工智能 弹性计算
阿里云视频云总经理何亚明:基于倚天的视频云原生业务新范式
软硬协同提速度、AI处理提画质、云端联合保体验
阿里云视频云总经理何亚明:基于倚天的视频云原生业务新范式
Phaser(一):跑酷游戏
采用的物理引擎是Phaser.js 官网地址:http://phaser.io/ 在这里对此引擎不做过多介绍(因为我也是小白,嘿嘿) 效果展示: 源码(详细源码图片资源可点击文章下方或屏幕右上方的github链接进行clone) 1.
220 0
|
网络协议 安全 机器人
互联网的发展简史—web
前言:互联网是我现在生活所离不开的一个东西,但是你知道互联网的前世今生吗?本文将讲解互联网的发展史,以及很火的元宇宙概念。
2456 1
 互联网的发展简史—web
|
存储 弹性计算 移动开发
阿里云无影云电脑具体价格及连接使用方法教程
阿里云无影云桌面4核8G配置1元首月,199元一年,8核16G配置年付899元。阿里云无影云电脑账号密码创建及连接教程如下
2852 0
阿里云无影云电脑具体价格及连接使用方法教程
|
数据可视化 JavaScript 前端开发
没有GPS也想定位,试试JavaScript轻应用的基站定位
本篇我们将基于HaaS 600Kit开发板,以及阿里云开发工具IoT-Studio来搭建一个简单的定位功能,说到设备定位,同学们可能都会想到GPS定位,其实除了像GPS这种卫星定位之外,我们身边的设备如:智能手机、智能手表、穿戴设备等能联网的设备都可以用来定位,通过连接运营商(电信、联通、移动)基站来定位的方式称之为基站定位,或者又称之为移动位置服务(LBS--Location Based Service)。
没有GPS也想定位,试试JavaScript轻应用的基站定位