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的数据测试过,实际的查询速度还不如没分区的时候快