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