【磁盘过载分析】如何通过DBAdvisor快速快速识别需要整改的表
1. 倾斜表识别
点击①“空间分析” -> 在②出输入集群名称->在③处点击“数据倾斜-异常数”->点击④处的下三角对倾斜值从大到小排序。
如果存储倾斜太大且倾斜率很大,则说明表倾斜比较严重,需要修改分布列。
修改分布列可以参考《GaussDB(DWS)性能调优系列实战篇三:十八般武艺之好味道表定义》
如果没有合适的分布列,且表上没有主键或者唯一约束,可以把表的分布方式修改为RoundRobin
ALTER TABLE ctmes_tgmesmbi.mbi_hlottsthisDISTRIBUTE BY ROUNDROBIN;
- 注意:修改分布列的过程中此表存在双份数据,因此要预留足够的磁盘空间,防止导致磁盘空间过载。
2. 列存未压缩表
点击①“空间分析” -> 在②处点击“表压缩方式-异常数”->点击③处的下三角对表按照空间使用从大到小排序。
此处是检测压缩级别是NO的列存表,则说明表很大,需要把表的压缩级别修改为middle级别。一般直接修改压缩级别,然后VACUUM FULL此表。
ALTER TABLE customer_address SET(compression=middle);
VACUUM FULL customer_address;
--注意,VACUUM FULL的过程中此表存在双份数据,因此要预留足够的磁盘空间,防止VACUUM FULL过程中导致磁盘空间过载。
3.大复制表识别
点击①“空间分析” -> 在②处点击“表分布方式-异常数”->点击③处的下三角对表按照空间使用从大到小排序。
此处主要是是检测过大复制表。复制表在每个DN上都有一份全量数据,当表磁盘空间占用过大时,需要把表修改为HASH表。一般复制表都是维表,存在维表,直接把分布列修改为主键即刻。
ALTER TABLE ctmes_tgmesmbi.mbi_hlottsthisDISTRIBUTE BY HASH(id);
- 注意:修改分布列的过程中此表存在双份数据,因此要预留足够的磁盘空间,防止导致磁盘空间过载。
4.表碎片异常识别
点击①“空间分析” -> 在②处点击“表碎片-异常数”->点击③处的下三角对表按照空间使用从大到小排序。
此处是检测碎片率比较高的表。如果碎片大小比较大,则说明表需要VACUUM FULL清理此表。
VACUUM FULL customer_address;
--注意,VACUUM FULL的过程中此表存在双份数据,因此要预留足够的磁盘空间,防止VACUUM FULL过程中导致磁盘空间过载。
5.其它异常识别
点击①“空间分析” -> 在②处点击“对象总大小”->点击③处的下三角对表按照空间使用从大到小排序。此处是查看数据库表对象大小。
1) 如果表的行数比较少,且表占用的磁盘空间比较大,则建议分析表,一般可以先尝试对表VACUUM FULL
VACUUM FULL customer_address;
--注意,VACUUM FULL的过程中此表存在双份数据,因此要预留足够的磁盘空间,防止VACUUM FULL过程中导致磁盘空间过载。
2) 如果表的行数比较多,且表占用的磁盘空间比较大,如果表是行存表(可以点击下图中的红圈出识别表是否为行存表),则需要业务分析是否可以改成列存表
3) 如果表的行数比较多,且表占用的磁盘空间比较大,且是列存表,则分析是否需要清理部分表数据
- 点赞
- 收藏
- 关注作者
评论(0)