日期:2014-05-17  浏览次数:20560 次

单表40亿条记录的表分区
用的是SQL SERVER2008,其中有一表数据达40亿条记录,由于此数据库是24小时实时运行,要求对数据库不停机、不影响系统正常运行的情况下进行表分区,请问各位怎么实现?
记得ALTER INDEX时有online=on的设置,表分区却没有这样的参数了。
------解决方案--------------------
你胆子真大,在产品环境上做这么大改动。。。。。
建议新建一张分区表,在产品环境比较闲暇的时候将数据倒到新表中;最后用新表替换旧表。

这样做的好处是第一很安全,第二,速度肯定比你直接强加分区块,因为你在新表上可以先没有索引,数据全进去后再加上。缺点就是需要有空闲的空间。

一般这么大的产品库,绝对不推荐线上直接修改。成功了是侥幸,出问题是常态,出了问题你就要兜着走
------解决方案--------------------
1:先创建一张新表,将在线数据最新插入的数据入到新表中
2:创建规划一分区表,将原来40亿数据量的表交换分区到分区表中
3:将在心数据直接插入分区表中
4:将新建表插入分区表中
------解决方案--------------------
试试 分批将数据导入到新表 当然新表上分区吧