



我们发现数据段高水位是11TB左右,现在大约9.7TB,而数据表的数量高水位是9359,而现在是5426。继续观察TOP 10的段的情况:

我们发现系统中的一些大对象达到几十GB,而且有不少索引的大小也十分大。最大的表有90多GB,而最大的索引居然有40多GB。这是十分不正常的。于是我们立即想到了碎片问题,是不是很多表和索引存在较多的碎片呢,于是立即进行了碎片分析,发现:

以某张表为例:

有一张表只有1行数据,行长216字节,不过这个表占了67M的空间,对该表的访问产生了大量不必要的逻辑读。某些索引就更夸张了:

一张表才4480M大小,而它上面的一个索引居然有36GB,对全表进行扫描100毫秒可以完成,而全扫描一个索引需要600毫秒。于是我们建议用户在晚上时候对表碎片和索引碎片进行一次整理,表采用MOVE操作进行碎片整理,索引可以单独通过REBUILD ONLINE。通过一晚上的努力,第二天奇迹出现了,表空间腾出了1TB多的空间,CPU使用率降低到40%多,大量的SQL性能也有大幅提升:
序号 | SQLID | 优化效果 |
1 | akb9zf0ht1haf | 性能提升18倍 |
2 | 8052aqjpzcnsm | 性能提升3倍 |
3 | 4ajbwbw0h6vtb | 性能提升5倍 |
4 | bn5rynd78k14h | 性能提升14倍 |
5 | 8nsma6a04pzfw | 性能提升3倍 |
6 | 81ug5j5p56tma | 性能提升2倍 |
7 | 17g0t2vdhjcx9 | 性能提升10倍 |
8 | afp7xqq4mr5d5 | 性能提升8倍 |
9 | dm1srzhp5ckmm | 性能提升4倍 |
10 | bf2sr7juj0atm | 可以提高5上 |
11 | cm3a0xrn34wq0 | 性能提升12倍 |
12 | 2gh1ucj3mwtpx | 性能提升20倍 |
13 | 8j1791514u23f | 性能提升8倍 |
文章转载自 白鳝的洞穴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




