已建立了一个表,未曾分区的,表中有聚集索引rk_time,现有分区方案DateRangePScheme,请问如何把表设为分区表。
使用alter table吗?麻烦大家给出解决办法,谢谢了。

解决方案 »

  1.   

    对于一个已经存在大量数据,并且表中含有自动增加字段的表,做分区就比较麻烦了,现在就介绍一下如何将包含大量数据的表进行分区的方法及步骤: 
        1.创建分区函数 
          CREATE PARTITION FUNCTION [DBA_PFN_NumberID](int) AS RANGE LEFT FOR VALUES (200000, 400000, 600000, 800000, 1000000, 1200000, 1400000, 1600000, 1800000, 2000000, 2200000) 
        2.创建分区方案 
          CREATE PARTITION SCHEME [DBA_PSCH_NumberID] AS PARTITION [DBA_PFN_NumberID] All TO ([PRIMARY]) 
       3.将分区应用到表和索引上,可能会执行成功,如果成功那么分区就完成了,如果没有成功则继续执行以下步骤 
        4.将原表中数据导入到一个备份表(因为数据量超过35万就可能对表直接修改为分区了) 
          SELECT * INTO NEWTABLE FROM TABLENAME 
        5.删除原表中数据 
         TRUNCATE TABLE TABLENAME 
        6.将旧表和索引设置为分区(在表设计状态的属性中) 
        7.将备份表中的数据导回到原表中 
          set identity_insert TableName on 
          insert ib_salesnumber(字段1,字段2...) select 字段1,字段2... from NewTable --必须指定列名
          set identity_insert TableName off 
        7.分区完毕,删除备份表 
          DROP Table NewTable 
      

  2.   

    http://topic.csdn.net/u/20090206/10/13C0ACFA-709E-48A8-8ABC-2B3208C8FAB4.html