使用临时表进行查询的执行计划

Die*_*cic 5 sql-server sql-server-2008-r2 sql-execution-plan

我有一个执行以下操作的存储过程:

SELECT Id
INTO #temp
FROM table
WHERE ...

DELETE FROM #temp
INNER JOIN table2 ON a=b
WHERE ...
Run Code Online (Sandbox Code Playgroud)

但是它运行缓慢。当我尝试查看执行计划时,由于SQL Server Management Studio提示“消息208,级别16,状态0,第31行,无效的对象名称'#temp'”,因此无法执行。

有什么方法可以查看此类脚本的执行计划(或执行详细信息(而非计划))吗?

Con*_*rix 5

SET SHOWPLAN_TEXT ON(或点击显示估算的执行计划是SSMS)创建计划,而不执行SQL

由于这会创建#temp

SELECT Id
INTO #temp
FROM table
WHERE ...
Run Code Online (Sandbox Code Playgroud)

这将失败

DELETE FROM #temp
INNER JOIN table2 ON a=b
WHERE ...
Run Code Online (Sandbox Code Playgroud)

所以解决方案是将其添加到顶部(或通过SSMS进行等效操作)

SET SHOWPLAN_TEXT OFF
GO

SET STATISTICS PROFILE ON
GO
Run Code Online (Sandbox Code Playgroud)