图形执行计划很有用,是由于其易读。不过,关于运算符的过多数据信息并不立即可以看到,在“工具提示“窗口中显示的信息也有所限制,“属性”窗口则显示完整的数据信息。要是有一种方法一次可以查看所有的数据信息该有多好呀!
1.文本估计计划要启用文本执行计划的文本版本,只需在查询前运行以下命令:
SET SHOWPLAN_ALL ON;
这里需要注意的是:一旦SHOWPLAN_ALL设为ON,则会收集后续即将执行的T-SQL语句,不过这些语句并不真正地执行,因此,我们获得了其估计计划。在收集完这些信息后一定要将此SHOWPLAN_ALL开关设为OFF。假如你忘记这一点,对于提交的CREATE、UPDATE或DELETE语句都将不会被执行。
若要关闭SHOWPLAN_ALL开关,只需要简单地执行:
SET SHOWPLAN_ALL OFF
2. 文本的实际执行计划要启用或关闭实际执行计划的文本版本,请使用下面的命令:
SET STATISTICS PROFILE ON
以及:
SET STATISTICS PROFILE OFF
解释文本计划
这里还是使用先前讨论图形执行计划时使用的最简单的查询,因此执行以下语句:
SET SHOWPLAN_ALL ON;
GO
SELECT *
FROM dbo.DatabaseLog;
Go
SET SHOWPLAN_ALL OFF;
GO
执行完上面的查询后,在结果面板中显示估计计划。如下图所示的:
图6:文本执行计划
第一行显示的是提交的SELECT语句执行结果,紧接着是查询计划内发生的物理运算符,在本例中只有一行,即表扫描。
随着逐步深入,在以后的章节中将会看到更为复杂的文本计划,或许你很快意识到这些计划分析起来并不与图形计划一样容易。从查询中并没有容易掌握的方法,如先前我们在图形执计划中采用的“自右至左”的分析方法。不过你可以借助于数据的缩进和“|”符号(连接父子语句)的帮助从中间开始向右分析。
除了第一列外,在“工具提示”窗口或“属性”窗口中隐藏的详细信息也显示一小部分,多数即将在此看到的信息会更多,因此,对于图形执行计划中的 NODE ID ,并不需要找出某个节点的父节点。而在 SHOWPLAN_ALL 中,我们看到有一个 Parent 的节点,如同从右查看,你将会看到许多其它熟悉的列,如 TotalSubTreeCost 、 EstimateRows 等等。有些列很难进行分析,如 Defined List ,以逗号分隔的列表。来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/355374/viewspace-600624/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/355374/viewspace-600624/