注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

PostgreSQL 中文网

 
 
 

日志

 
 

PostgreSQL9.5:Parallel VACUUMing  

2015-08-09 12:14:28|  分类: Postgres基础 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
        9.5 版本的 vacuumdb 支持并行功能,类似 pg_dump 和 pg_restore 的 -j 参数,做整库 vacuum 时能提高速度,同时资源消耗也会大些,当然之前版也可以通过其它方法实现并行 vacuum 功能,例如开启多个 vacuum 脚本同时 vacuum 不同的表。本文简单演示下 vacuumdb 并行。
 
--举例

vacuumdb -j4 dbname


--创建一批测试表

for a in {10..19}
do
    psql fdb fdb -c "create table test_$a as select n    ,random() from generate_series(1, 1000000) n;"
done


--查看创建的表

[pg95@db2 tf]$ psql fdb fdb
psql (9.5alpha1)
Type "help" for help.

fdb=> \dt+ test_*
                     List of relations
 Schema |    Name     | Type  | Owner | Size  | Description
--------+-------------+-------+-------+-------+-------------
 fdb    | test_10     | table | fdb   | 19 MB |
 fdb    | test_11     | table | fdb   | 19 MB |
 fdb    | test_12     | table | fdb   | 19 MB |
 fdb    | test_13     | table | fdb   | 19 MB |
 fdb    | test_14     | table | fdb   | 19 MB |
 fdb    | test_15     | table | fdb   | 19 MB |
 fdb    | test_16     | table | fdb   | 19 MB |
 fdb    | test_17     | table | fdb   | 19 MB |
 fdb    | test_18     | table | fdb   | 19 MB |
 fdb    | test_19     | table | fdb   | 19 MB |
(10 rows)


--开启并行 vacuumdb

[pg95@db2 tf]$ vacuumdb -e -j4 fdb
vacuumdb: vacuuming database "fdb"
SELECT c.relname, ns.nspname FROM pg_class c, pg_namespace ns
 WHERE relkind IN ('r', 'm') AND c.relnamespace = ns.oid
 ORDER BY c.relpages DESC;
VACUUM fdb.test_10;
VACUUM fdb.test_11;
VACUUM fdb.test_12;
VACUUM fdb.test_13;
VACUUM fdb.test_14;
VACUUM fdb.test_15;
VACUUM fdb.test_16;
VACUUM fdb.test_17;
VACUUM fdb.test_18;
VACUUM fdb.test_19;
...

备注:开启 4 个并行 vacuum 进程,输出中有一段 SQL,取出的表列表根据表大小排序。

--查看 vacuum 进程

[pg95@db2 pg95]$ ps -ef | grep VACUUM
pg95     25144 17848  2 11:58 ?        00:00:00 postgres: postgres fdb [local] VACUUM
pg95     25145 17848  1 11:58 ?        00:00:00 postgres: postgres fdb [local] VACUUM
pg95     25146 17848  2 11:58 ?        00:00:00 postgres: postgres fdb [local] VACUUM
pg95     25147 17848  2 11:58 ?        00:00:00 postgres: postgres fdb [local] VACUUM


--查看 vacuum 会话

[pg95@db2 pg95]$ psql fdb -c "select pid, datname,usename,query_start,client_addr,query ,waiting from pg_stat_activity where state='active' and pid <> pg_backend_pid() order by pid;"
  pid  | datname | usename  |          query_start          | client_addr |        query        | waiting
-------+---------+----------+-------------------------------+-------------+---------------------+---------
 25144 | fdb     | postgres | 2015-08-09 11:58:05.160335+08 |             | VACUUM fdb.test_12; | f
 25145 | fdb     | postgres | 2015-08-09 11:58:34.790037+08 |             | VACUUM fdb.test_14; | f
 25146 | fdb     | postgres | 2015-08-09 11:58:34.790115+08 |             | VACUUM fdb.test_16; | f
 25147 | fdb     | postgres | 2015-08-09 11:58:51.504252+08 |             | VACUUM fdb.test_19; | f
(4 rows)


--参考
  评论这张
 
阅读(581)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016