informix表分片问题
remainder分片detach下来后,如何再次把remainder分片attach上去,要保证remainder分片里面的数据完整?> alter fragment on table ems_event_history detach partition remainder remainder_1w;
> select count(*) from remainder_1w;
(count(*))
65060
1 row(s) retrieved. 回复 1# y331044508
做informix分片维护,detach一个分片时非常慢,发现表结构中出现了主键(primary key),删除主键后再对表detach时耗时在1秒中;
之后将detach下来的分片策略进行修改从新attach回去,发现非常非常慢,经过多次测试,发现是由于remainder分片中的数据和attach
分片中的数据时间有重复的,十有八九是否发生了数据迁移。。。强行停止操作,这时杯具发生了,导致库发生回滚(无奈等了3个小时),
最后直接先将remainder分片先detach掉,然后再对其他分片进行操作,这次就非常快了,但问题出来了,由于之前分片都满了,
新到的数据都储存在了remainder分片中,而且数据量很大如果进行导出导入的话就相当费时,
所以我想是否有办法直接将detach下来的remainder分片表直接又给attach回去,不知道是否可以行? informix分片,分片策略制定比较关键,最好不好用到remainder的方式,另外如果要频繁detach,atach,创建索引时候,就不要制定存储空间,这样效率就会高很多 回复 3# koolkite
我新增加的分片和之前分片的策略是一样的,只是把时间修改了下,我是按照时间做的策略。 如果按照时间所的分配,完全可以去掉remainder,你可以这样操作,先增加一个新的分片,再detach掉你想要detach的分片,另外表的索引存储位置要和数据一样,在同一个dbspaces中,要不然影响到detach的效率 你的IDS版本号多少?可以贴出来你的表分片策略,和业务情况,更好分析
实在不好意思,最近比较忙,没来得及上论坛看看。
经过这段时间我想出来一个解决办法,以下是我的思路,大家给看看是否有更简单的方法:
基本思路:
remainder分片detach下来,数据被存储到临时表remainder_1w中,我主要是想要remainder分片中的数据,
创建一个与ems_event_history表结构完全相同的表ems_event_history_new,然后将临时表中的数据insert到
ems_event_history_new表中,然后再将ems_event_history_new表挂载到ems_event_history下面的一个
分片上,最后从新创建remainder分片分片; 本帖最后由 y331044508 于 2012-06-25 13:55 编辑
发重了。。。:dizzy:
页:
[1]