【磁盘过载分析】如何通过DBAdvisor快速快速识别需要整改的表

举报
譡里个檔 发表于 2024/03/12 19:58:55 2024/03/12
【摘要】 本文介绍了常见的基于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) 如果表的行数比较多,且表占用的磁盘空间比较大,且是列存表,则分析是否需要清理部分表数据


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。