问个问题,分区表分区数量到达999后应该如何处理?
3年多前的项目,老人都走了,交给我维护,发现有个按照天来分区的分区表,现在分区表已经到达分区999了,新的数据已通过switch in切进来之后第二天就会被新的switch in数据替换
目前表大小在30G,索引18g,不是很大
我的大概想法是,首先把之前过早的数据通过switch out出去然后drop,之后将分区表的数据全部插入到另一个新表中,然后新建一个分区函数和分区架构,在新表上应用
然后再把旧表drop,新表改名
各位看看还有没有更好的方法?
另外有个问题,就是当我在分区函数中,我Merge range之后,比如执行alter partition function···
merge range ('2010-01-01')之后,原来是999个分区,是不是就会变成998个分区了?能否自动往后按照日期添加分区?
------解决方案--------------------ALTER PARTITION FUNCTION myRangePF1 ()
SPLIT RANGE ('2013-01-30');
------解决方案--------------------
分区999 ,目前分区最多支持15000个(64位),往下分应该是没问题的。
如果每天的数据不是非常多的话,lz可以看一下分区方案是否可以扩大分区的范围。比如每周。
另外,老数据,比如一年前的数据,可以分到一个区中。
不过就lz的数据量 30G单表。对应查询需求还很高情况,lz可以考虑使用分表处理。这样可以减小索引处理的压力。毕竟几个G重建索引来的较容易一些。
参考
------解决方案--------------------MS文档建议2008用到1K就够了。。。首选合并旧分区,开辟新分区。。。
------解决方案--------------------
32位2k5,64G内存,单表数据+索引=15+19G,记录数3.5亿,分100个区,基本还没出现性能问题