PostgreSQL插件之pg_dropcache清理缓冲

举报
大象数据库 发表于 2020/06/19 14:20:52 2020/06/19
【摘要】 练习执行计划以及开发缓冲模块需求的时候,有时候需要清空下缓冲,在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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。