有一张表期中有100多w条数据 程序执行起来比较慢,想用分区表的办法,使查询变快一些。
方案如下
--查看分区信息
SELECT * FROM sys.partition_range_values
--查看分区架构
select * from sys.partition_schemes
--select * from Day_CaiDan_Elderly
--分区函数 :按每半年分一次
CREATE PARTITION FUNCTION MonthDateRange(datetime)
AS RANGE Right FOR VALUES
(
'2013-01-31 00:00:00.000','2013-07-01 00:00:00.000','2014-01-01 00:00:00.000'
)
--分区方案
CREATE PARTITION SCHEME MonthDateRangeScheme
AS
PARTITION MonthDateRange
ALL TO ([PRIMARY])
-- 下面是测试时间
declare @datetime1 as datetime
declare @datetime2 as datetime
select @datetime1 = GETDATE()
select * from Day_CaiDan_Elderly where DCTime >= '2012-02-01 00:00:00.000' and DCTime < '2012-04-01 00:00:00.000'
select @datetime2 = GETDATE()
select @datetime2 - @datetime1
分区后表比现有的查询快 0.08秒左右。
不知是否可行,先记下来,