转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Sql Server >> 正文
T-SQL命令在SQL Server查询中的运用_         

T-SQL命令在SQL Server查询中的运用_

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1464 更新时间:2007/11/14 13:14:56
  首先需要说明的是这篇文章的内容并不是如何调节SQL Server查询性能的(有关这方面的内容能写一本书),而是如何在SQL Server查询性能的调节中利用SET STATISTICS IO和SET STATISTICS TIME这二条被经常忽略的Transact-SQL命令的。

  从表面上看,查询性能的调节是一件十分简单的事。从本质上讲,我们希望查询的运行速度能够尽可能地快,无论是将查询运行的时间从10分钟缩减为1分钟,还是将运行的时间从2秒钟缩短为1秒种,我们最终的目标都是减少运行的时间。

  尽管查询性能调节困难的原因有许多,但这篇文章将只涉及其中的一个方面,其中最重要的原因是,每当使用环境发生变化时,就需要对性能进行调节,因此很难搞清楚到底需要如何调节查询的性能。

  如果象大多数用户那样在一台测试用的服务器上进行性能调查,其效果往往并不是十分地令人满意,因为测试服务器的环境与实际应用的服务器环境并不完全相同。随着对资源要求的不断变化,SQL Server会自动地进行自我调节。

  如果对这一点有疑问,可以在一台负载很大的服务器上反复地运行同一个查询,在大多数情况下,执行查询所使用的时间并不相同。当然,差距并不大,但其变化足以使性能的调节比它应有的程度要困难一些。

  这到底是怎么回事儿?是你的想法错了还是在运行查询时,服务器的负载过重?这是引起运行时间增加的原因吗?尽管可以多次反复地运行查询得到一个平均时间,但这样作的工作量很大。我们需要用一种很科学的标准对每次测试时的性能进行比较。

  测量服务器资源是解决查询性能调节问题的关健

  在服务器上执行查询时,会用到许多种服务器资源。其中的一种资源是CPU的占用时间,假设数据库没有发生任何改变,反复地运行同一个查询其CPU的占用时间将是十分接近的。在这里,我指的不是一个查询从运行开始到结束的时间,而是指运行这一查询所需要的CPU资源数量,运行一个查询所需要的时间与服务器的忙碌程度有关。

  SQL Server需要的另一种资源是IO。无论何时运行查询,SQL Server都必须从数据缓冲区中读取数据(逻辑读),如果所需要的数据没有在缓冲区中,则需要到磁盘上读取(物理读)。

  从讨论中可以知道,一个查询需要的CPU、IO资源越多,查询运行的速度就越慢,因此,描述查询性能调节任务的另一种方式是,应该以一种使用更少的CPU、IO资源的方式重写查询命令,如果能够以这样一种方式完成查询,查询的性能就会有所提高。

  如果调节查询性能的目的是让它使用尽可能少的服务器资源,而不是查询运行的时间最短,那么就更容易测试你采取的措施是提高了查询的性能还是降低了查询的性能。尤其是在资源利用不断变化的服务器上更是如此。首先,需要搞清楚在对查询进行调节时,如何测试我们的服务器的资源使用情况。

  又想起了SET STATISTICS IO和SET STATISTICS TIME

  SQL Server很早以前就支持SET STATISTICS IO和SET STATISTICS TIME这二条Transact-SQL命令了,但由于其他一些原因,在调节查询的性能时,许多DBA(数据为系统管理员)都忽略了它们,也许是它们不大吸引人吧。但不管是什么原因,我们下面就会发现,它们在调节查询性能方面还是很有用的。

  有三种方式可以使用这二条命令:使用Transact-SQL命令行方式、使用Query Analyzer、在Query Analyzer中设置当前连接适当的连接属性。在这篇文章中,我们将使用Transact-SQL命令行的方式演示它们的用法。

  SET STATISTICS IO和SET STATISTICS TIME的作用象开关那样,可以打开或关闭我们的查询使用资源的各种报告信息。缺省状态下,这些设置是关闭的。我们首先来看一个这些命令如何打开的例子,并看看它们会报告一些什么样的信息。


[办公软件]在sybase中插入图片、PDF、文本文件  [办公软件]安装Sybase ASE
[办公软件]linux指令大全(完整篇)  [办公软件]Linux新手入门常用命令大全
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法
[办公软件]Linux程序员必读:中文化与GB18030标准  [办公软件]linux指令大全
[办公软件]制作Linux启动盘的四种方法  [办公软件]Linux文件系统的反删除方法
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台