客服微信
考试科目:PGCE-E-091
考试题量:44 道单项选择题、29 道多项选择题(每题 2 分)
通过分数:60%
考试时间:60min
本文为云贝教育刘峰(微信:yunbee_DBA)原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。
PG中,autovacuum可以自动地分析表,并收集表的统计信息。
A 正确
B 错误
参考答案:A
解析
autovacuum会做两件事
autovacuum_vacuum
autovacuum_analyze
autovacuum_vacuum_threshold:默认50。
与autovacuum_vacuum_scale_factor配合使用, autovacuum_vacuum_scale_factor默认值为20%。
当update,delete的tuples数量超过autovacuum_vacuum_scale_factor*table_size+autovacuum_vacuum_threshold时,进行vacuum。如果要使vacuum工作勤奋点,则将此值改小。
testdb=# show autovacuum_vacuum_threshold; autovacuum_vacuum_threshold ----------------------------- 50 (1 row) testdb=# show autovacuum_vacuum_scale_factor; autovacuum_vacuum_scale_factor -------------------------------- 0.2 (1 row)
autovacuum_analyze_threshold:默认50。
与autovacuum_analyze_scale_factor配合使用, autovacuum_analyze_scale_factor默认10%。
当update,insert,delete的tuples数量超过autovacuum_analyze_scale_factor*table_size+autovacuum_analyze_threshold时,进行analyze。
testdb=# show autovacuum_analyze_threshold; autovacuum_analyze_threshold ------------------------------ 50 (1 row) testdb=# show autovacuum_analyze_scale_factor; autovacuum_analyze_scale_factor --------------------------------- 0.1 (1 row)
实验过程
1、创建实验表
postgre=# create table t2(id int,name text); CREATE TABLE postgre=# insert into t2 values(generate_series(1,1000),'aaaaa'||generate_series(1,1000)); INSERT 0 1000
2、查看表t2的信息
cmdb=# select relname,reltuples,relpages from pg_class where relname='t2'; relname | reltuples | relpages ---------+-----------+---------- t2 | -1| 0 (1 row)
3、计算触发条件
autovacuum Vacuum=0.2*1000+50=250; autovacuum ANALYZE=0.1*1000+50=150;
4、修改t2表151行
postgre=# update t2 set name='bbb' where id<152; UPDATE 151 postgre=# SELECT schemaname, n_tup_ins as "inserts", n_tup_upd as "updates", n_tup_del as "deletes", n_live_tup as "live_tuples", n_dead_tup as "dead_tuples", last_vacuum, last_autovacuum, last_analyze, last_autoanalyze FROM pg_stat_user_tables WHERE relname = 't2'; -[ RECORD 1 ]----+------------------------------ schemaname | public inserts | 1000 updates | 151 deletes | 0 live_tuples | 1000 dead_tuples | 151 last_vacuum | last_autovacuum | last_analyze | last_autoanalyze | 2023-11-01 21:01:14.482775+08
以上实验可以确认,在修改151条数据时,触发了autovacuum ANALYZE
5、查看统计信息
testdb=# select relname,reltuples,relpages from pg_class where relname='t3'; relname | reltuples | relpages ---------+-----------+---------- t3 | 1000 | 7 (1 row)
可以看到在达到autovacuum ANALYZE的阀值,统计信息己被收集。
PostgreSQL PGCE考试为理论考试,需通过两门考试才能拿到“PostgreSQL PGCE证书”。
以下是PostgreSQL官网的考试费,可以添加云贝教育的课程顾问老师微信19941464235或者19906632509,咨询有优惠。
PostgreSQL证书如下 合格考生公布:考后不超过 5 个工作日 “开源软件联盟 PostgreSQL 分会”公众号发布 证书寄送:考后统一寄送至培训机构)
云贝教育有专业的PostgreSQL PGCE认证培训课程,想快速通过考试的同学可以扫码联系老师咨询(点击文字转跳至PostgreSQL PGCE大纲)