19.3.1 SQL Query Analyzer 简介
SQL Query Analyzer 是一个图形化的管理工具,主要用于编写、测试Transact-SQL 语句、批处理。系统管理员和开发者通过SQL Query Analyzer 能够同时执行多个查询、查看查询结果、分析查询计划,从而了解如何提高查询执行的性能。从SQL Server Enterprise Manager 可以将其启动。SQL Query Analyzer 提供了以下特性:
为编写Transact-SQL 语句提供了自由格式的文本编辑器; 将Transact-SQL 语法用彩色代码显示,从而提高了复杂语句的可读性; 对象浏览和搜索工具使在数据库中寻找某一数据库对象变得更为容易; 包含创建数据库对象的基本语句的模板文件,从而提高了使用Transact-SQL 语句创建数据库对象的速度; 分析存储过程的调试器; 结果集可以以表格或文本格式显示; 图形化的执行计划显示了执行Transact-SQL 的每一个逻辑步骤。 19.3.2 配置SQL Query Analyzer
在使用SQL Query Analyzer 之前,首先要对其查询选项进行配置。因为这些选项直接决定了查询的显示信息、查询结果和SQL 语句执行计划的显示格式和内容。配置SQL Query Analyzer 主要有两种方法:一种是通过SQL Query Analyzer, 另一种是通过SET 命令来实现。在这里我们只介绍前一种方法。
首先启动SQL Query Analyzer, 然后在工具栏的Query 菜单下选择Current Connection Properties 菜单项。打开Current Connection Properties 对话框,如图19-7 所示。
其中各选项的含义为: Set nocount
表示在返回信息中不包括查询语句所影响行数信息。 Set noexec
表示编译但不执行语句。 Set parseonly
表示解析但不编译或执行语句。 Set concat_null_yields_null
表示如果串联中的任何一个操作数为NULL, 则返回值为NULL。 Set rowcount
表示返回指定行数的查询结果集然后结束查询处理。
Set arithabort
表示在查询处理中,如果出现零做除数或运算溢出错误,则终止查询。 Set showplan_text
表示显示查询的执行信息。 Set statistics time
表示显示解析、编译、执行语句所需要的时间,其单位为微秒。 Set statistics IO
表示显示磁盘活动信息。 Set status I/O
表示显示执行查询时磁盘活动的状态信息。 Set ansi_default
表示按SQL-92 标准设置以下选项。 19.3.3 使用SQL Query Analyzer
在本节开头部分,我们已经介绍了有关SQL Query Analyzer 的特性以及它所具有的功能.通常来说,SQL Query Analyzer 主要可以帮助实现以下四大功能: 执行SQL 语句 分析查询计划 显示查询统计情况 实现索引分析 下面以一个实际例子来讲解SQL Query Analyzer 是如何实现这些功能,的以及它又是怎样帮助系统管理员或应用程序开发者实现索引分析和查询计划分析。
首先在文本编译器中输入以下的查询语句:
然后选择工具栏的Query 菜单下的show execution plan 和show client statistics 选项。接着单击工具栏上Execute Query, 此时在文本编辑器的下半部分的三个标签页上分别显示查询的结果集查,询执行计划以及统计信息。
该图显示了由查询优化器(Query Optimizer) 所决定的查询数据的方法。在这里所使用的图形化执行计划是使用图标而不是表格来代表具体某一语句和查询的执行情况,从而有利于理解执行的详细情形。除此之外,SQL Query Analyzer 还能够指出还应该在哪些列上创建索引以便提高查询性能,以及给出有关非索引列的统计信息。
选中Statistics 标签页,如图19-9 所示。
这些统计信息主要由查询处理器使用,通过统计信息,其能够在查询评估阶段来决定最优的查询策略是什么。在表上创建索引之后,SQL Server 自动将有关索引列分布值的统计信息存储起来,以备查询优化器以后使用。所以,如果某一列的值发生变化,则其最佳的查询策略也将改变,因查询优化器仍使用其存储的统计信息来进行查询决策,从而降低了查询效率。
本章小结
本章主要介绍了SQL Mail、 SQL Server Profiler 、Query Analyzer 的重要功能及其用法,较为详细地阐述了各主题、各工具所涉及的有关问题。SQL Mail 为SQL Server 提供邮件传送服务;SQL Server Profiler 帮助系统管理员监视数据库和服务器的行为,提高了管理效率;SQL Query Analyzer 为系统管理员和开发者能够查看查询结果、分析查询计划提供了便利条件,从而了解如何提高查询执行的性能。