网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.讲解SQLite数据库管理系统的适用.
.通过查询分析器对比SQL语句的执行.
.关于Sql Server 2000 Analysis S.
.如何使用分析函数来进行行和列的.
.通过SQL Server对上传文件内容进.
.详解sql server中数据库快照工作.
.配置SQL Server 2000选项.
.在Linux下访问MS SQL Server数据.
.在编写存储过程时使用 Set NoCou.
.logmnr无法生成部分表的DML跟踪语.
.讲解数据库加密技术的功能特性与.
.数据库差异备份与增量备份的不同.
.sql2k增加的Function的sqlbook的.
.深入讲解数据库性能调优技术中的.
.SQL Server 2005中的异常处理消息.
.数据仓库基本报表制作过程中的SQ.
.详细讲解SQL Server索引的性能问.
.SQL语句导入导出大全.
.sqlplus命令的使用大全.
.教你轻松解决数据库非事务表回滚.

使用查询分析器调整SQL服务器脚本

发表日期:2003-7-17


我喜欢把SQL服务器所捆绑的工具看作是倒金字塔型的,诊断和检查一般问题的工具在顶端,寻找和诊断问题具体区域的工具在底部。除了提供一种编写SQL脚本的便捷方式之外,在你需要解决特定SQL脚本里明确问题的时候,查询分析器(Query Analyzer)还是所需要使用的资源。如果你需要指出哪个查询正在保持着某个特定表格的锁定状态,你也会希望使用查询分析器。

查询分析器的关键诊断特性是它能够显示某个查询的执行计划。这个执行计划会向你提供各种类型的有用信息,例如在查询的执行期间如何以及何时使用或者不使用索引。它还会提供许多其他的细节,例如排序、平行(parallelism)、嵌套循环,以及SQL服务器在执行指定查询时必须做的其他事情。

计划的好处


有了查询分析器,你就可以查看预计计划而不需要运行查询本身,或者在查询执行之后查看真实的计划。很显然,真实的计划会更加准确,因为它是从物理上对数据库运行查询的。但是对于系统负载巨大和/或长期的查询,这种方法可能就不是最好的选择了。在典型情况下,当我认为某个特定的查询有问题的时候,或者如果我预计有一个查询会在应用程序里被足够频繁地调用以至于可能会导致性能问题的时候,我就会运行这个工具。

你可以通过把SQL表达式输入查询分析器再按[Ctrl]L来查看预计的执行计划。执行计划然后就会显示在结果(Results)面板的选项卡里。执行计划在刚开始的时候可能比较难读,因为它不像英语一样是从左往右读的,而是从右往左读的。


运行中的计划

这里有一个你可以跟着做的例子,从这个例子里你可以看到如何使用查询分析器来查看一个执行计划。考虑一下下面查询,它会从Northwind数据库里返回某个雇员所在的地点和相关地区:
 
SELECT
TerritoryDescription, RegionDescription
FROM
Employees e
JOIN EmployeeTerritories et ON e.employeeid = et.employeeid
JOIN Territories t ON et.territoryid = t.territoryid
JOIN Region r ON t.regionid = r.regionid
WHERE
e.employeeid = 1
ORDER BY
TerritoryDescription, RegionDescription
 
这个查询的结果显示:一号EmployeeId在东部(Eastern)有两个地区,如图A所示。

图A

查询结果

图B显示了SQL服务器从示例查询所生成的预计执行。这个图标中的每个节点都代表着SQL服务期执行示例查询所采取的步骤。要注意,每个节点包括一个预计的相对消耗,以及执行计划被显示的时候SQL服务器所使用的每个索引的名称。

图B

执行计划

你可以把鼠标放在执行计划的每个节点上以获取更多关于该步骤的信息,例如该节点所代表的操作类型、受影响的行数,以及和该步相关的消耗的分解。C显示的是图B里针对第一个节点的额外信息。这些弹出窗口里的信息能够提示你可以对查询做出哪些改进,如果能够改进的话。

图C



和索引调节向导一起使用

你可以将查询分析器和SQL服务器的索引调节向导(Server’s Index Tuning Wizard,ITW)一起使用。我通常使用SQL服务器的Profiler来收集要送入ITW的数据。但是有时候,我会使用查询分析器,如果我认为它代表着我正在进行测试时的某种活动类型的话。你可以从查询(Query)菜单来访问ITW;它能够对在活动编辑面板里的SQL脚本做出性能建议。

上一篇:使用索引调节向导调整应用程序的性能 人气:11083
下一篇:关于MSSQL占用过多内存的问题 人气:14601
浏览全部SQL的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐