通过分区提高性能

Lit*_*din 1 performance sql-server partitioning sql-server-2012

我正在使用 SQL Server 2012。我正在使用 CTE 从项目表中创建一个订单表。订单表的最终计数约为 1.2 亿。整个过程大约需要2个小时。

对表进行分区是否有助于减少完成时间?

如果是这样,我可以按订单年份对空表进行分区,然后从 CTE 插入到订单表中吗?或者我是否需要在 items 表上创建一个分区,因为 CTE 是从 items 表中汇总的?

此外,我估计的行数与实际行数有很大不同。

Rem*_*anu 5

对表进行分区是否有助于减少完成时间?

不。分区不是性能功能,而是用于其他目的。如果该表有 1.2 亿行未分区,则分区后也将有 1.2 亿行。阅读如何决定是否应该使用表分区

如果您想提高性能,您需要确定瓶颈并适当地解决它们。这是一个糟糕的计划吗?缺少索引?IO 慢?CPU慢?内存不够?糟糕的代码?使用诸如等待和队列之类的方法来确定瓶颈。