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=# createextension pg_dropcache;CREATEEXTENSIONpostgres=# createtablet1(f1 int);CREATETABLEpostgres=# insertintot1 values(10), (20);INSERT0 2 | 
清理前,预期:shared hit
| 
     1
     
     2
     
     3
     
     4
     
     5
     
     6
     
     7
     
     8
     
     9
     | postgres=# explain(ANALYZE,VERBOSE,BUFFERS)  select* fromt1;                                              QUERY PLAN                                               ------------------------------------------------------------------------------------------------------- Seq Scan onpublic.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=# selectpg_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* fromt1;                                              QUERY PLAN                                               ------------------------------------------------------------------------------------------------------- Seq Scan onpublic.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)