为什么在返回大型结果集的存储过程中使用临时表。这有助于提高性能?是否有一个例子可能是几个表的连接返回大量数据以及临时表如何帮助在存储过程中执行此查询?
答案 0 :(得分:1)
根据我的经验,当查询非常复杂以至于查询优化器难以提出一个体面的计划时,它们可能会在有限的情况下提供帮助。如果正确完成,将这样的查询拆开并将中间结果存储在临时表中可能会有所帮助。我使用这种策略作为最后的手段,因为临时表很昂贵,对于大型结果集,它们可能非常昂贵。
答案 1 :(得分:0)
我发现这篇优秀的文章在回答这个问题时非常有用:
Paul White - temporary tables in stored procedures
只是为了强调文章中的一些概念:
就我而言,我只想补充一点,如果存储过程多次访问另一台服务器中的相同数据而且连接速度很慢,将它带入临时表可能会很有用。当然,表变量也可用于此目的。