Sqlserver2005分区表实现步骤(二)

2014-11-24 09:48:35 · 作者: · 浏览: 2
PRIMARY KEY CLUSTERED(flg, id)
ON PartionStruct(flg)
go
6、分区完成
到这里,我们要做的分区工作已经完成,但是这里还需要做一件事情,检查我们的数据,是不是正确分区了:
执行下面的SQL,可以看到,根据这个分区函数处理后,各个分区储存的数据量,如果每个分区的rows字段数目基本差不多,说明数据的分布还是比较均匀的
select partition_number,rows
from sys.partitions
where object_id=object_id('tbAddressbook') --and partition_number=$partition.分区函数名(值)
或者用下面的语句(比较慢)
select partition = $partition.PartionFunction(flag)
,rows = count(*)
,minval = min(flag)
,maxval = max(flag)
from tbAddressbook
group by $partition.PartionFunction(flag)
order by partition
最后要说明的是,对tb1表做了分区后,所有的检索语句,最好都加上分区键作为检索条件
/*
--合并201310这个分区
ALTER PARTITION FUNCTION DATE_PF ()
MERGE RANGE (201310);
-- 拆分分区
ALTER PARTITION SCHEME [DATE_PS]
NEXT USED [PRIMARY]
GO
ALTER PARTITION FUNCTION DATE_PF ()
SPLIT RANGE (20130301)
*/
/*
-- 切换分区,新分区表必须是空表,才能切换
CREATE TABLE [fqb0](
[ID] [bigint] NOT NULL,-- Identity(1,1),
[IMEI] [varchar](100) NOT NULL,
[dt] [int] NOT NULL
)
GO
-- 新分区表要有同样的聚集索引
CREATE CLUSTERED INDEX [fqb0_key] ON [fqb0]
(
[dt] ASC
)
GO
--下面的partition 1这个1,可以通过上面的SQL:查看分区数据量,来确定
alter table fqb switch partition 1 to fqb0
*/