ADBPG&Greenplum成本优化问题之查询大表的dead tuple占比和空间如何解决

简介: ADBPG&Greenplum成本优化问题之查询大表的dead tuple占比和空间如何解决

问题一:如何查询大表的dead tuple占比和空间?


如何查询大表的dead tuple占比和空间?


参考回答:

可以使用以下SQL命令查询大表的dead tuple占比和空间:

SELECT ((btdrelpages/btdexppages)-1)*100||'%', b.relname FROM gp_toolkit.gp_bloat_expected_pages a 
JOIN pg_class b ON a.btdrelid=b.oid 
WHERE btdrelpages/btdexppages > 1.2;


关于本问题的更多问答可点击原文查看:

https://developer.aliyun.com/ask/667962



问题二:VACUUM和VACUUM FULL命令的主要区别是什么?


VACUUM和VACUUM FULL命令的主要区别是什么?


参考回答:

VACUUM命令只是回收表的空间并令原表可以再次使用,但额外的空间并不返回给操作系统,且可以与表的普通读写并发操作。而VACUUM FULL将表的全部内容重写到一个没有垃圾数据的新文件中,并释放旧表占用的空间给操作系统,但处理时需要在表上施加排他锁,影响业务使用。


关于本问题的更多问答可点击原文查看:

https://developer.aliyun.com/ask/667963



问题三:为什么在某些情况下需要手动执行VACUUM而不是依赖自动清理?


为什么在某些情况下需要手动执行VACUUM而不是依赖自动清理?


参考回答:

在大库和大表场景下,由于表可能非常大,数据变化量虽然相对于表的总大小来说比例不高,但绝对量仍然很大,多个大表一起变化会累计给整体空间带来问题。因此,需要辅以手动回收来更有效地管理空间。


关于本问题的更多问答可点击原文查看:

https://developer.aliyun.com/ask/667964



问题四:哪些系统表容易因为频繁DDL操作而膨胀?


哪些系统表容易因为频繁DDL操作而膨胀?


参考回答:

容易因为频繁DDL操作而膨胀的系统表包括pg_attribute(存储表字段详情)、pg_attribute_encoding(表字段的扩展信息)、pg_class(存储pg的所有对象)和pg_statistic(存储pg的数据库内容的统计数)。


关于本问题的更多问答可点击原文查看:

https://developer.aliyun.com/ask/667965


问题五:手动执行VACUUM时有哪些限制需要注意?


手动执行VACUUM时有哪些限制需要注意?


参考回答:

手动执行VACUUM时,首先不要在IO使用率高的期间执行,以免影响系统性能;其次,VACUUM FULL需要额外的磁盘空间才能完成,如果磁盘剩余空间不足,可能无法对大表执行VACUUM FULL,需要先删除一些历史表以腾出空间;最后,必须确保目标表上的所有大事务都已经结束,否则内核会认为旧的数据还可能被使用,从而无法回收空间。


关于本问题的更多问答可点击原文查看:

https://developer.aliyun.com/ask/667966

相关文章
|
Java 关系型数据库 PostgreSQL
|
对象存储 C++
tuple类型的单词查询例子
17.3 重写前面的TextQuery程序,使用tuple代替QueryResult类。 TextQuery.h #ifndef TEXTQUERY_H #define TEXTQUERY_H #include #include #include #include #includ...
664 0
|
6月前
|
Python
Python元组tuple“删除”元素的两种函数代码设计
实际上,Python的tuple元组内的元素是不能被修改的,因此也是无法被删除的,但是,为了移除Python元组tuple内的某些元素,以获得一个新的元组,还是有其办法存在的。比如,我们可以使用for循环添加的方法,来创建一个不包含那些需要被移除的元素的新元组。Python中元组添加元素的内置方法为__add__()方法,实际上,该方法也是
85 4
|
6月前
|
存储 索引 Python
元组(Tuple)在Python编程中的应用与实例
元组(Tuple)在Python编程中的应用与实例
117 2
|
4月前
|
存储 缓存 Python
Python中的列表(List)和元组(Tuple)是两种重要的数据结构
【7月更文挑战第12天】Python中的列表(List)和元组(Tuple)是两种重要的数据结构
49 1
|
5月前
|
存储 Python
Python中list, tuple, dict,set的区别和使用场景
Python中list, tuple, dict,set的区别和使用场景
152 2
|
5月前
|
存储 索引 Python
Python教程:深入了解 Python 中 Dict、List、Tuple、Set 的高级用法
Python 中的 Dict(字典)、List(列表)、Tuple(元组)和 Set(集合)是常用的数据结构,它们各自有着不同的特性和用途。在本文中,我们将深入了解这些数据结构的高级用法,并提供详细的说明和代码示例。
172 2
|
4月前
|
存储 安全 编译器
Python学习日记(一:List、Tuple、dictionary)
1.列表、元组和字典都是序列 2.列表字典可以修改和删除序列中的某个元素,而元组就是一个整体,不能修改和删除,一定要修改或删除的话,只能修改和删除整个元组。 3.既然元组不能删除和修改,有什么作用呢? 1.元组比列表遍历速度快,因为元组是一个整体,运算效率高; 2.正是因为不能修改,元组可以保护不需要修改的数据,可以使代码结构更安全。
|
6月前
|
Python
【Python 基础】列表(list)和元组(tuple)有什么区别?
【5月更文挑战第6天】【Python 基础】列表(list)和元组(tuple)有什么区别?
|
6月前
|
存储 安全 Java
Python教程第3章 | 集合(List列表、Tuple元组、Dict字典、Set)
Python 列表、无序列表、字典、元组增删改查基本用法和注意事项
97 1