4

我有 2 个临时表 #temp1 和 #temp。两者都有一个键和日期列。两者都有大约 25k 行。我将根据所有行上唯一的键和日期加入它们。完成此联接大约需要 4 分钟。有什么方法可以加快速度或任何替代方法吗?

4

4 回答 4

6

我相信您可以像在任何其他表上一样在临时表上创建索引。

于 2009-08-25T07:43:35.647 回答
3

如果您的25k表连接需要4几分钟,那么它就有问题。

很可能您输入了错误的JOIN条件,导致笛卡尔连接(或接近它的东西),从而导致25k * 25k = 625M返回记录。

如果不是更多的话,这确实可能需要4几分钟,但我认为这不是你想要的。

可能您的查询中有DISTINCT/GROUP BY子句,这使查询返回正确的结果集,但以非最佳方式。

能否请您发布您的查询,以便我能说出确切的原因?

于 2009-08-25T16:32:35.217 回答
1

我怀疑您的整个查询可能需要查看。可能有另一种方法可以给这只兔子剥皮。

你能留下更多细节吗?

于 2009-08-25T07:51:07.033 回答
1

根据您正在做什么,您可能完全避免使用临时表并拥有基于集合的解决方案(它将运行得更快并且可以更好地扩展),但是如果不知道您的查询是什么就很难知道。

于 2009-08-25T16:11:04.230 回答