PostgreSQL插件之pg_dropcache清理缓冲
【摘要】 练习执行计划以及开发缓冲模块需求的时候,有时候需要清空下缓冲,在github找了下,还真的有!!! PG的插件真的多到爆!!!1.功能描述 清理全部缓存select pg_dropcache();清理某张表的缓存select pg_drop_rel_cache(<relation>);清理某张表的forknum缓冲main''vm''fsm''init'select pg_drop_re...
练习执行计划以及开发缓冲模块需求的时候,有时候需要清空下缓冲,在github找了下,还真的有!!! PG的插件真的多到爆!!!
1.功能描述
清理全部缓存
select pg_dropcache();
清理某张表的缓存
select pg_drop_rel_cache(<relation>);
清理某张表的forknum缓冲
main'
'vm'
'fsm'
'init'
select pg_drop_rel_cache(<relation>, <fork>);
2.下载
https://github.com/zilder/pg_dropcache
3.源码编译及安装
下载到contrib下面,在Makefie中添加pg_dropcache,在配置文件中添加:shared_preload_libraries='pg_dropcache'
4.测试
准备插件及测试数据
1
2
3
4
5
6
|
postgres=#
create
extension pg_dropcache;
CREATE
EXTENSION
postgres=#
create
table
t1(f1
int
);
CREATE
TABLE
postgres=#
insert
into
t1
values
(10), (20);
INSERT
0 2
|
清理前,预期:shared hit
1
2
3
4
5
6
7
8
9
|
postgres=# explain(ANALYZE,VERBOSE,BUFFERS)
select
*
from
t1;
QUERY PLAN
-------------------------------------------------------------------------------------------------------
Seq Scan
on
public
.t1 (cost=0.00..35.50
rows
=2550 width=4) (actual
time
=0.006..0.006
rows
=2 loops=1)
Output
: f1
Buffers: shared hit=1
Planning
Time
: 0.211 ms
Execution
Time
: 0.018 ms
(5
rows
)
|
执行清理:
1
2
3
4
5
|
postgres=#
select
pg_drop_rel_cache(
't1'
);
pg_drop_rel_cache
-------------------
(1 row)
|
清理后,预期:shared read
1
2
3
4
5
6
7
8
9
|
postgres=# explain(ANALYZE,VERBOSE,BUFFERS)
select
*
from
t1;
QUERY PLAN
-------------------------------------------------------------------------------------------------------
Seq Scan
on
public
.t1 (cost=0.00..35.50
rows
=2550 width=4) (actual
time
=0.030..0.030
rows
=0 loops=1)
Output
: f1
Buffers: shared
read
=1
Planning
Time
: 0.028 ms
Execution
Time
: 0.038 ms
(5
rows
|
小伙伴们,生产环境慎用!!!!!
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)