加速SQL Server中的临时表连接

时间:2009-08-25 07:36:16

标签: sql sql-server sql-server-2005 join temp-tables

我有2个临时表#temp1和#temp。两者都有一个键和日期列。两者都有大约25,000行。我将根据所有行上唯一的键和日期加入它们。这次加入需要大约4分钟才能完成。有没有办法加快速度或任何替代方法?

4 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:3)

如果您25k表的加入时间为4分钟,那么就会出现问题。

很可能你提出错误的JOIN条件导致笛卡尔联接(或接近它的东西),这导致返回25k * 25k = 625M个记录。

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

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

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

答案 2 :(得分:1)

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

你能留下更多细节吗?

答案 3 :(得分:1)

取决于你正在做什么,你可以完全避免临时表,并有一个基于集合的解决方案(运行速度更快,扩展性更好),但是很难知道你的查询是什么