我有一个查询,它创建了几个临时表,然后将数据插入其中。根据我的理解,这是Table Spool的潜在原因。当我查看我的执行计划时,我的大部分处理都花在了Table Spool上。有没有什么好的技术可以改善这些类型的性能问题?使用视图或CTE会为我提供临时表的任何好处吗?
我还注意到,当我将鼠标悬停在每个表假脱机上时,输出列表来自同一个临时表。
答案 0 :(得分:18)
嗯,根据您提供的信息,我只能说明:查询优化器已选择了最佳计划。它使用表格线轴来加快执行速度。不使用表盘的替代品会更慢。
如何显示查询,表格架构和基数以及计划。
<强>更新强>
如果您无法向我们展示查询,我当然明白了。但是真的很难猜测为什么发动机会在不知道任何细节的情况下提供假脱机。我建议你浏览Craig Freedman的博客,他是查询优化器团队的工程师,并解释了SQL 2005/2008优化器的许多内部工作原理。以下是我可以快速找到的一些条目,以某种形式触及假脱机的主题:
SQL客户支持团队在http://blogs.msdn.com/psssql/上也有一个有趣的博客 'sqltips'(关系引擎的团队博客)提供了一些提示,例如Spool operators in query plan...