分区策略

时间:2012-05-23 08:18:04

标签: sql-server sql-server-2008 tsql

起点
我在一个表中填入数据,为了比较运行中运行的数据,我添加了一个“run”(整数)列。
我保持最后5次跑。由于我在表中的两次运行后不断获得超时,我决定将表分区为“run”。

我做了什么
1.我创建了具有1000个分区的分区表(我认为“运行”从1到1000),最多只有5个分区,其他995是空的并等到下一次运行将被放在那里的那一刻。
2.我创建了使用上述分区功能的分区方案,并将所有分区(即1000)保存在PRIMARY文件组中 我在“运行”上对表进行了分区。

结果:不再超时,但处理时间增加了50%。

问题:我的分区策略中哪些点不是最理想的?我应该创建5个分区并更改运行编号的方式吗?

1 个答案:

答案 0 :(得分:6)

分区不是性能问题的解决方案。您正在寻找索引。分区将减慢处理速度,您可以期望的最佳性能是非分区表的性能。对于数据管理方案,分区非常适合使用分区交换机(ETL或数据到期)进行快速数据移动。

你需要调查你为什么会超时。有根据的猜测将指示表扫描(即缺失索引)。一种好的方法是Waits and Queues