客服微信
考试科目:PGCE-E-091
考试题量:44 道单项选择题、29 道多项选择题(每题 2 分)
通过分数:60%
考试时间:60min
本文为云贝教育刘峰(微信:yunbee_DBA)原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。
使用ANALYZE搜集统计信息时,会在表上加一个读锁,因此它可以和表上的其他SQL并发的执行。
A. 正确
B. 错误
参考答案:A
解析:
一、窗口1执行大批量修改
testdb=# begin; BEGIN testdb=*# select pg_backend_pid(); pg_backend_pid ---------------- 35304 (1 row) testdb=*# select txid_current(); txid_current -------------- 777 (1 row) testdb=*# update t1 set a=667 ;
二、窗口2执行收集统计信息
testdb=# analyze t1; ANALYZE
发现很快就执行完成
三、窗口3查看琐信息
testdb=# select locktype,database,relation::regclass,transactionid,pid,mode from pg_locks order by pid; locktype | database | relation | transactionid | pid | mode ---------------+----------+------------+---------------+-------+------------------ virtualxid | | | | 30854 | ExclusiveLock relation | 16389 | pg_locks | | 30854 | AccessShareLock relation | 16389 | idx_t1_a4 | | 35304 | RowExclusiveLock relation | 16389 | idx_t1_a3 | | 35304 | RowExclusiveLock relation | 16389 | idx_t1_a2 | | 35304 | RowExclusiveLock relation | 16389 | idx_t1_a1 | | 35304 | RowExclusiveLock relation | 16389 | idx_t1_a | | 35304 | RowExclusiveLock relation | 16389 | t1 | | 35304 | RowExclusiveLock virtualxid | | | | 35304 | ExclusiveLock relation | 16389 | idx_t1_a41 | | 35304 | RowExclusiveLock transactionid | | | 777 | 35304 | ExclusiveLock relation | 16389 | idx_t1_a5 | | 35304 | RowExclusiveLock (12 rows)
结论:我们发现,修改会话1持有对象T1上的RowExclusiveLock,而会话2在执行分析时未申请对象上的排它锁,所以可以正常执行。
进一步确认analyze申请的读共享锁。
PostgreSQL PGCE考试为理论考试,需通过两门考试才能拿到“PostgreSQL PGCE证书”。
以下是PostgreSQL官网的考试费,可以添加云贝教育的课程顾问老师微信19941464235或者19906632509,咨询有优惠。
PostgreSQL证书如下 合格考生公布:考后不超过 5 个工作日 “开源软件联盟 PostgreSQL 分会”公众号发布 证书寄送:考后统一寄送至培训机构)
云贝教育有专业的PostgreSQL PGCE认证培训课程,想快速通过考试的同学可以扫码联系老师咨询(点击文字转跳至PostgreSQL PGCE大纲)