前几天,客户说他们2期的系统的数据库空间不够了,而刚在2周前刚刚添加了数据文件的,为啥这么快吞光了哪?从他们的业务量不难发现,这是应该不可能的。他们没有那么大的业务量。于是去数据库看了下,发现了一个不可思议的问题,竟然有个表占了1.2个T的空间,几乎都是被它给吞噬殆尽了。
看了下字段没有几个,然后查询了下表的记录数(只对一个小的分区查了下,对整个表查记录数估计几个小时都完不了。),发现本表存在碎片,因为一个分区只有600万记录,但却有20g大,通过每隔字段估计,大概每行也就有140byte,这绝对是存在大量的碎片。问了下客户,大致猜测出他这个表每天的处理逻辑。它是每天全量加载,删除昨天之前数据,保留月底数据。
找了个业务空闲时间段,move一把(幸好它建了分区,否则真不知道到哪里去找地方挪。呵呵)。
生产上操作,绝对要小心,一失足会千古恨的。