毕业设计网
毕业设计论文 | 毕业设计任务书 | 计算机外文翻译 | 文献综述 | 机械模具类 | 课程设计 |

SQL server的 profiler 和查询分析器

  申请中心测试,如何用 SQL SERVER的 Profiler 和查询分析器测量你的网络申请的表现到极端的那些工具之一,直到某人表示你如何有用的使用它。我复盖了申请的价值为测量表现集中测试,因为你能使用那些,所以这相当紧要关头测量作进步,固定的目标,而且最重要地是计划能力和刻度。
   在这一专栏中,我要讨论交换的其他二个工具: SQL SERVER的 Profiler 和SQL SERVER的查询分析器,当这些 SQL 定向的工具不是大多数的ASP.NET 的时候,开发者熟悉,我会强烈地鼓励你把这些加入你的工具箱。亲自地,如果我除 ASP.NET 之外就会处理任何其他的产品队了,在我在微软的任期的期间,它会是 SQL SERVER在内部的队, SQL SERVER的是一令人惊异复杂块的软件,但是规画而且使用它相当容易。理解一些复杂很重要因为,当你将会找之时,数据库是时常使你知道 SQL 的内在者的你的申请和更多的瓶颈你能做避免那些问题的服务器更多。

   将数据最佳化存取

   你花费多少时间分析你的申请如何使用它的数据库资源?问开发者 , 最通常的答案是非常多.典型大多数的表现问题是在二中的一方法中演说:借由增加新的硬件或者借着校正调的密码那申请.大多数的开发者偏爱调节密码,但是有时它实际上可能是更多有效的到仅仅增加新的硬件.然而它应该被注意那一个表现问题有时能被借由在为瓶颈分析之前增加新的硬件使情况更坏.如果一瓶颈在软件中,快速的表演硬件能更快速地排队请求,发动瓶颈更坏的事.最好的方法,一如往常,将瓶颈分析(硬件或软件)在做任何事之前。
   身为一个开发者,我偏爱首先投掷一些密码,在采取硬件方法之前。一经决定被作出,它通常是大约做一些基本靠模切削那申请使用申请中央的测试而且识别哪里在申请中表现是贫穷的.一经问题区域被理清,下一个步骤应该将使用SQL SERVER的 Profiler 检查申请如何使用数据库资源。
   当它写网络申请的时候,有一个表现自明之理:如果你的申请运行任何的跨程序沟通(数据库,网络服务)它是一种你的时间的较好的使用或将那些沟通最佳化或尝试在你的申请里面将其他的密码最佳化之前完全地除去他们。因为数据库最佳化,如果申请正在去到,我的一般经验法则是那数据库超过一次或两次在一个给定的请求上, (或使网络服务成为呼叫)因为那些来回双程是最时常因素,所以一定有的非常好理由它贫穷地表演申请。
   Telligent 是我的队才度过过去三个星期调整我们的社区服务器forums.asp.net.我们将近制造了 40个现像的变化,其中 75% 是在数据库,当另一个 25% 直接地被讲对任一编码变化的时候减少或者将在数据库被花费的时间最佳化. ASP.NET 的贮藏特征是一最好的工具为减少数据库来回穿行。
   如果你正在使用你已经得到一组工具的 SQL SERVER的Profiler 而且查询分析器,对于理解,你的申请正在使用数据库的方式.我将不包括全部在这一专栏中的 Profiler 的内在工作或查询分析器,但是学习更多有关如何 SQL SERVER的作品在思维之下,我高度地推荐微软 SQL SERVER的 2000 的表现最佳化和校正手册. 这一本书是我的喜爱叁考之一-我自己的副本被加亮的咖啡.希望你的副本将会拥有同样有用的存在。


      SQL SERVER的 Profiler

   检查记录或痕迹被你的申请产生的文件对理解是无价的,你的应用如何正在被用.举例来说,对于网络开发者,检查 IIS 记录是通常的了解应用使用.在团体服务器里面有一个内建的例外处理的人到追踪被产生的所有的例外;稍后,我们能检讨这些记录而且很快地得到一个好主意问题区域。
   SQL SERVER的 Profiler 能用来在你的流动 SQL SERVER的上看活动的活会议数据库.你能拾落穗如此的重要的数据当做多少疑问你的数据库是运行,那些疑问是拿多少时间,质疑的运行是哪一个数据库,而且如此在。之上由于数据库的表演 profiler 会议在 asp.net 群上用了.你能见到一些被捕获的 SQL 痕迹,哪一场表演为 weblogs.asp.net 储存了程序(项目以 blog_ 前缀), beta.asp.net(以 aspnet_ 前缀的项目), 社区服务器论坛(项目以 cs_ 前缀), 而且为 www.asp.net 下载下载台. 借由选择你也能看全文的一个项目,如同有被做对于被储存的程序 cs_forums_Post.为处理器,阅读有另外的专栏,读写的期间。
  
   储存程序

   有关使用被储存的程序有很多热情的辩论.使用的一个好争论他们能在 " TheServerSide 辩论:储存了程序 v 参数化的疑问 " 被发现是彼得 DeBetta。
   在企业申请的储存的程序的利益之一是封包和抽象化.如果一个申请正在使用动态的 SQL (正在被产生的 SQL 本文在那之上飞行), 申请正在典型地更挑战调节.校正电动 SQL 需要再编译申请.储存程序,另一方面,装入胶囊他们的功能性而且能没有影响公众的签字被修正.正如如方法在你的美国石油协会以许多方式作为装入胶囊被储存程序的功能性是那相同的能力,但是在数据库中。
   当然为使用动态的 SQL 也有一些好情形.一个例子会是反对/能动态地产生以商务物体为基础的 SQL 的表示关系的制图人需求.如果电动 SQL 被用于,任何 asp.net 聚集它会在 SQL 出现如标准的 SQL 的 Profiler,像选择专栏 1, 来自 TableA 的专栏 2。

   从Profiler开始

   你能在 SQL SERVER的文件夹中有 SQL SERVER的的任何标准安装找 Profiler在所有的计划项目表中.我也会推荐安装如部份的 SQL SERVER的工具任何的标准开发者环境。
   在你能开始之前一经你打开,你将会需要首先到一个数据库连接的 Profiler 一靠模切削会议.对数据库连接,选择文件│新的│痕迹.这提出那对 SQL SERVER的会话连接.进入你的窗口或 SQL SERVER的图书.注意那你将会需要当 SQL SERVER的 sysadmin 团体的一个成员跑 profiler 。
   下一个,已经在图书之后被查证你将会需要设定一些财产为那在痕迹特性会话中追踪.预先设定地, Profiler 将会取得被定义的事件进入标准的型板.这是一个事件的重要子集不愿他们全部.当取得每件事物可能是有用又大多数的伺候器支援超过一个数据库和痕迹那取得所有的数据库交通不是必需或有用的.藉由按下过滤器定位键你能识别一些过滤器强迫什么被捕获.举例来说,你能强迫对来自一个特定的登录的唯一的表演连接的痕迹,质疑那有一种特性期间 , 或包含一些已知的本文的疑问(你们能使用如此的取代字符符号当做到做相配的 SQL 取代字符).
   举例来说,让我们说你想要为社区跑所有数据库交通的痕迹服务器.此外,你只想要审查正在接管 100 ms 的沟通运行。(通常计算那带比 200 ms 将会是的更大引人注目的对使用者)为了要做这我设定有一个指定的登录名字的一个过滤器,像 csforums,和一期间更棒的超过或与 100相同. 图 2 表示这一痕迹的结果。
   有一些正在更时常跑的被储存的程序,即cs_forums_Search 和 cs_Sections_Get.也许是 cs_Threads_GetThreadSet 有703 的期间! 储存程序的 cs_Sections_Get 也些微地看起来不正常由于超过 11,000 总数连同高期间价值一起读.这些数字不是可怕的,但是他们也不是完美的。
   使用 Profiler 提供的数据,你能至少开始了解什么你的数据库正在做和它正在花费它的时间的地方.在这一痕迹会议中,我过滤正在花长的时间跑而且把重心集中在论坛数据库的程序.在那里也可能在哪一个有太多疑问跑和减慢系统是情形,但是在那些情况减轻是最好的,一些数据库藉由增加装载一另外的
伺候器或为尝试除去错误的实在准备数据库的当地副本。
   在一个很重要装载的系统上,并非使用 Profiler UI 收集你的 SQL 痕迹,你应该考虑使用 T-SQL 将结果送到一个服务端文件(你能仍然使用UI 产生痕迹定义,对手写体它,和运行它). 将结果送到服务端痕迹文件确定当把事件送给痕迹到的时候,没有事件被降低一rowset(是什么 SQL Profiler 使用)不保证这。
 分析质疑

   为了要在查询分析器查找疑问,首先用黏贴的内容进入查询分析器,然后去到工具栏和选择疑问│表演实行计划.下一个,加亮 SQL 运行。立刻在 SQL 下面质疑那被运行是结果格子,表示什么是藉着疑问回.在这情况有被退还的二 resultsets.第一 resultset是一连串的区段 (论坛),而且一个第二的是一系列许可.社区伺候器使用一个以角色为基础的许可制度控制什么使用者罐子或者不能够做在那里面系统.每当一连串的区段被取回,系统也使它的目录生气蓬勃为那些区段的许可。
   在查询分析器的底部权利,你见到本文: "5430 排 ". 这指出那排的总数回.在这一个程序,在许可逻辑中有一个段会导致系统对总角色归还一个目录同等物是以那相乘总区段.在 forums.asp.net 的情况,有 29个独特的角色和 181个区段;这总计 5,249 排.增加被第一 resultset 退还的 181 排和你拿的5,430 排的总数回。
   显然地这是相当地许多排.事实上,借由使用 Profiler 和查询分析器,这特别的疑问被最佳化归还得比 250 总计的切记录的期间少对少于 100 ms。除了流动的疑问之外,查询分析器让你分析一个疑问.取消那你在运行 SQL 之前使实行计划的成绩能够了.计划提供一SQL SERVER的如何正在运行你的疑问的视觉图表,什么编入索引中它使用,和另外地被 SQL SERVER的需要提高疑问的能帮助你将索引最佳化的数据或者其他的数据表现。
   运行的图 4 表演每个疑问,它的实行计划,用的索引,参加,和数量数据从每操作返回了.甚至箭在每个项目之间有重要性:箭的厚度是数据被那退还多少的视觉指示操作;也就是说,一个校正的疑问可能有许多厚的箭指出操作哪一个正在或许归太多数据。申请中心测试, SQL SERVER的 Profiler 和 SQL SERVER的查询分析器是一些为校正你的 ASP.NET 的表现或 SQL SERVER的申请的大部分有力的工具。而且,他们还是一个开发者的工具带箱的部份,但是这些有力的工具应该也通常被用检查申请的全部表现.经常除去的时候,开发者将会把重心集中在将他们的密码里面的常式最佳化或将像数据库呼叫这样的跨程序沟通最佳化,会是一种更好的使用时间的方法。

以上是一部分介绍,如需要完整的资料或者如不符合您的要求,请联系技术人员qq:242219979咨询

上一篇:delphi图书进销存管理系统
下一篇:外贸业务系统的毕业设计


版权所有 毕业设计网联系qq:242219979 © 2007-2022