询问者
已经存在的数据表进行分区--怎么解决

问题
-
首先已经存在的数据表没有任何 主键,约束,和索引
ALTER DATABASE Demo ADD FILEGROUP YEARFG1;
ALTER DATABASE Demo ADD FILEGROUP YEARFG2;
ALTER DATABASE Demo ADD FILEGROUP YEARFG3;
ALTER DATABASE Demo ADD FILEGROUP YEARFG4;
ALTER DATABASE Demo ADD FILEGROUP YEARFG5;
ALTER DATABASE Demo ADD FILEGROUP YEARFG6;ALTER DATABASE Demo ADD FILE (NAME = 'YEARF1', FILENAME = 'C:ADVWORKSF1.NDF') TO FILEGROUP YEARFG1;
ALTER DATABASE Demo ADD FILE (NAME = 'YEARF2', FILENAME = 'C:ADVWORKSF2.NDF') TO FILEGROUP YEARFG2;
ALTER DATABASE Demo ADD FILE (NAME = 'YEARF3', FILENAME = 'C:ADVWORKSF3.NDF') TO FILEGROUP YEARFG3;
ALTER DATABASE Demo ADD FILE (NAME = 'YEARF4', FILENAME = 'C:ADVWORKSF4.NDF') TO FILEGROUP YEARFG4;
ALTER DATABASE Demo ADD FILE (NAME = 'YEARF5', FILENAME = 'C:ADVWORKSF5.NDF') TO FILEGROUP YEARFG5;
ALTER DATABASE Demo ADD FILE (NAME = 'YEARF6', FILENAME = 'C:ADVWORKSF6.NDF') TO FILEGROUP YEARFG6;
已经有一张数据表 TestTB (id int , sex char(2),birthday datetime)
里面有10000000万数据,没有主键、索引、约束。
现在我想对此表进行按 BIRTHDAY 进行分区
第1步:
CREATE PARTITION FUNCTION DupARPF(datetime)
AS
RANGE LEFT FOR VALUES ('2003-01-01'
,'2005-01-01'
,'2007-01-01'
,'2008-01-01'
,'2009-01-01'
,'2010-01-01')第二步:
CREATE PARTITION SCHEME DupARPS
AS PARTITION DupARPF TO (YEARFG1, YEARFG2,YEARFG3,YEARFG4,YEARFG5,YEARFG6,YEARFG7)第三步 我该怎么作能把 "DupARPS" 和 已经存在数据表(TestTB) 关联起来进行分区
星光总能为我指引方向
全部回复
-
你好你的这种方案我已经用过了,但是有个问题,鼠标右键-属性-存储:有个文件组:已对表进行分区,但是此时是:FALSE 不是TRUE 此时我认为,我执行上述
create clustered index TestTB_index
on orders(BIRTHDAY)
on DupARPS(BIRTHDAY);
goTestTB 的属性-存储-
有个文件组:已对表进行分区 应该是:TRUE 吧
还有,你的建议是,首先建立一个复表,之后,建立分区,再把数据作快照过去,我的理解对吗
星光总能为我指引方向
1.这个文件组是什么名字?是你前面脚本建立的么?2.不是我的意思,你先建好分区表,在将需要分区的数据分批insert到这个建好的分区表内。
family as water