3

起点
我用数据填充了一个表,为了比较从运行到运行的数据,我添加了一个列“运行”(整数)。
我保留最后 5 次运行。由于我在表中运行 2 次后不断超时,因此我决定在“运行”时对表进行分区。

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

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

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

4

1 回答 1

6

分区不是性能问题的解决方案。您正在寻找索引。分区会减慢处理速度,您可以期望的最好的结果是与非分区表的性能相当。分区非常适合数据管理场景,用于使用分区切换(ETL 或数据过期)进行快速数据移动。

您需要调查为什么会超时。有根据的猜测将表明表扫描(即缺少索引)。一个好的方法是等待和队列

于 2012-05-23T08:32:18.650 回答