云贝教育 |【PostgreSQL PGCE-091题目解析22】PG中,autovacuum可以自动地分析表,并收集表的统计信息。

本文主要是介绍云贝教育 |【PostgreSQL PGCE-091题目解析22】PG中,autovacuum可以自动地分析表,并收集表的统计信息。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

考试科目: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-091题目解析22】PG中,autovacuum可以自动地分析表,并收集表的统计信息。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/467310

相关文章

Dubbo之SPI机制的实现原理和优势分析

《Dubbo之SPI机制的实现原理和优势分析》:本文主要介绍Dubbo之SPI机制的实现原理和优势,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Dubbo中SPI机制的实现原理和优势JDK 中的 SPI 机制解析Dubbo 中的 SPI 机制解析总结Dubbo中

C#继承之里氏替换原则分析

《C#继承之里氏替换原则分析》:本文主要介绍C#继承之里氏替换原则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#里氏替换原则一.概念二.语法表现三.类型检查与转换总结C#里氏替换原则一.概念里氏替换原则是面向对象设计的基本原则之一:核心思想:所有引py

使用Java实现Navicat密码的加密与解密的代码解析

《使用Java实现Navicat密码的加密与解密的代码解析》:本文主要介绍使用Java实现Navicat密码的加密与解密,通过本文,我们了解了如何利用Java语言实现对Navicat保存的数据库密... 目录一、背景介绍二、环境准备三、代码解析四、核心代码展示五、总结在日常开发过程中,我们有时需要处理各种软

Python多进程、多线程、协程典型示例解析(最新推荐)

《Python多进程、多线程、协程典型示例解析(最新推荐)》:本文主要介绍Python多进程、多线程、协程典型示例解析(最新推荐),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 目录一、multiprocessing(多进程)1. 模块简介2. 案例详解:并行计算平方和3. 实现逻

Spring Boot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)

《SpringBoot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)》:本文主要介绍SpringBoot拦截器Interceptor与过滤器Filter深度解析... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实

python利用backoff实现异常自动重试详解

《python利用backoff实现异常自动重试详解》backoff是一个用于实现重试机制的Python库,通过指数退避或其他策略自动重试失败的操作,下面小编就来和大家详细讲讲如何利用backoff实... 目录1. backoff 库简介2. on_exception 装饰器的原理2.1 核心逻辑2.2

MyBatis分页插件PageHelper深度解析与实践指南

《MyBatis分页插件PageHelper深度解析与实践指南》在数据库操作中,分页查询是最常见的需求之一,传统的分页方式通常有两种内存分页和SQL分页,MyBatis作为优秀的ORM框架,本身并未提... 目录1. 为什么需要分页插件?2. PageHelper简介3. PageHelper集成与配置3.

一文详解PostgreSQL复制参数

《一文详解PostgreSQL复制参数》PostgreSQL作为一款功能强大的开源关系型数据库,其复制功能对于构建高可用性系统至关重要,本文给大家详细介绍了PostgreSQL的复制参数,需要的朋友可... 目录一、复制参数基础概念二、核心复制参数深度解析1. max_wal_seChina编程nders:WAL

SQL 外键Foreign Key全解析

《SQL外键ForeignKey全解析》外键是数据库表中的一列(或一组列),用于​​建立两个表之间的关联关系​​,外键的值必须匹配另一个表的主键(PrimaryKey)或唯一约束(UniqueCo... 目录1. 什么是外键?​​ ​​​​2. 外键的语法​​​​3. 外键的约束行为​​​​4. 多列外键​

Java进行日期解析与格式化的实现代码

《Java进行日期解析与格式化的实现代码》使用Java搭配ApacheCommonsLang3和Natty库,可以实现灵活高效的日期解析与格式化,本文将通过相关示例为大家讲讲具体的实践操作,需要的可以... 目录一、背景二、依赖介绍1. Apache Commons Lang32. Natty三、核心实现代