可能我们都知道Microsoft sql server management studio工具栏中的 "显示估计的执行计划" 按钮了,我们可以选中任何可执行的SQL,然后点击该按钮,SQL就会给我们选中SQL的图形执行计划了。
今天我们就利用showplan_all设置让SQL返回文字型的详细执行计划。
先看看showplan_all的功能:
功能描述:SQL Server 返回有关语句执行情况的详细信息,并估计语句对资源的需求。
SET SHOWPLAN_ALL 的设置是在执行或运行时设置,而不是在分析时设置。
具体示例:假如我要查看视图v_bas_unit的详细执行计划
set showplan_all on
go
select UnitCode from v_BAS_Unit
返回结果:
select UnitCode from v_BAS_Unit 1 1 0 NULL NULL 1 NULL 7 NULL NULL NULL 0.0032897 NULL NULL SELECT 0 NULL
|--Index Scan(OBJECT:([SDERP].[dbo].[BAS_Unit].[IX_BAS_Unit] AS [A])) 1 2 1 Index Scan Index Scan OBJECT:([SDERP].[dbo].[BAS_Unit].[IX_BAS_Unit] AS [A]) [A].[UnitCode] 7 0.003125 0.0001647 36 0.0032897 [A].[UnitCode] NULL PLAN_ROW 0 1
上面返回结果排版比较混乱,大家可以在自己的Microsoft sql server management studio看测试结果。
注意:1,set showplan_all设置对整个会话都有效,就是说在某个会话中,如果你有设置过set showplan_all on,那么在这个会话中任何后续sql都不会再执行,而是返回sql对应的执行计划。
2,设置了set showplan_all on后执行create table或者create view 等创建对象的SQL语句,实际上不会创建对应的对象,所以你想在设置了set showplan_all on后再创建某对象再调用某对象,就会报该对象不存在错误。
3,执行set showplan_all off可关闭该设置
4,不能在存储过程中设置set showplan_all on,它必须是批处理中的唯一语句nbsp;{ alert("复制失败!") }
}