对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,如需转载请自行联系原作者

目录
相关文章
|
关系型数据库 PostgreSQL
|
关系型数据库 数据库
|
安全 关系型数据库 数据库
|
监控 关系型数据库 数据库
Greenplum csvlog(日志数据)检索、释义(gp_toolkit.gp_log*)
标签 PostgreSQL , Greenplum , csvlog , gp_toolkit 背景 由于GP为分布式数据库,当查看它的一些日志时,如果到服务器上查看,会非常的繁琐,而且不好排查问题。
2640 0
|
SQL Oracle 关系型数据库
|
SQL 关系型数据库 数据库
PgSQL · 源码分析 · PG优化器浅析
在使用PostgreSQL数据库过程中,对SQL调优最常用的手段是使用explain查看执行计划,很多时候我们只关注了执行计划的结果而未深入了解执行计划是如何生成的。优化器作为数据库核心功能之一,也是数据库的“大脑”,理解优化器将有助于我们更好地优化SQL,下面将会为大家解开PostgreSQL优化器神秘的面纱。 SQL执行过程 在PG数据库中,对于DDL语句无需进行优化,到utility
2422 0
|
5月前
|
SQL 数据采集 自然语言处理
NL2SQL之DB-GPT-Hub<详解篇>:text2sql任务的微调框架和基准对比
NL2SQL之DB-GPT-Hub<详解篇>:text2sql任务的微调框架和基准对比
|
关系型数据库 Linux 数据库
PG基础-01 PG9.6.2源代码安装
PostgreSQL 9.6.2 在 CentOS 6.6 下源码编译安装
2532 0