在SQL Server执行计划中摆脱表假脱机

Abe*_*ler 13 sql sql-server sql-execution-plan

我有一个查询,创建几个临时表,然后将数据插入其中.根据我的理解,这是Table Spool的潜在原因.当我查看我的执行计划时,我的大部分处理都花在了Table Spool上.有没有什么好的技术可以改善这些类型的性能问题?使用视图或CTE会为我提供临时表的任何好处吗?

我还注意到,当我将鼠标悬停在每个表假脱机上时,输出列表来自同一个临时表.

Rem*_*anu 20

好吧,根据您提供的信息,我只能说:查询优化器已经选择了最好的计划.它使用表格线轴来加快执行速度.不使用表盘的替代品会更慢.

如何显示查询,表格架构和基数以及计划.

更新

如果你不能向我们展示查询,我当然明白.但是真的很难猜测为什么发动机会在不知道任何细节的情况下提供假脱机.我建议你浏览Craig Freedman的博客,他是查询优化器团队的工程师,并解释了SQL 2005/2008优化器的许多内部工作原理.以下是我可以快速找到的一些条目,以某种形式触及假脱机的主题:

SQL客户支持团队还有一个有趣的博客http://blogs.msdn.com/psssql/
和'sqltips'(关系引擎的团队博客)有一些提示,比如查询计划中的假脱机运算符......