日期:2014-05-19  浏览次数:20643 次

sql2005分区表使用
sql2005上建好的分区表,如何能高效选择数据,
如:原表(table包含字段iden,city,country,remark)包含300w条记录,建立分区表以iden自增列为分区键,分成3个一百万的表table1,table2,table3
现:select   *   from   table   where   iden=2006耗时12秒,
如何用分区表来实现此句?(CREATE   PARTITION   FUNCTION   callRangePFN(int),CREATE   PARTITION   SCHEME   callRangeScheme   )sql2005上建好的分区表,如何能高效选择数据,
如:原表(table包含字段iden,city,country,remark)包含300w条记录,建立分区表以iden自增列为分区键,分成3个一百万的表table1,table2,table3
现:select   *   from   table   where   iden=2006耗时12秒,
如何用分区表来实现此句?(CREATE   PARTITION   FUNCTION   callRangePFN(int),CREATE   PARTITION   SCHEME   callRangeScheme   )

------解决方案--------------------
CREATE PARTITION FUNCTION myRangePF1 (int)
AS RANGE LEFT FOR VALUES (1, 100, 1000);


下表显示对分区依据列 col1 使用此分区函数的表如何进行分区。

分区 1 2 3 4
Values
col1 <= 1
col1 > 1 AND col1 <= 100
col1 > 100 且 col1 <= 1000
col1 > 1000


------解决方案--------------------
表分区时,要3段数据放在3个文件组,文件组又在不同的磁盘上,这样查询才能提高效率,如果分区的文件组都放在一个磁盘上,我用500W的数据测试过,实际的查询速度还不如没分区的时候快