2011年12月30日
摘要: 四、分析执行计划创建索引根据语句的执行计划来判断应该对什么表创建什么索引,是常用优化技巧。其实文章前面的例子已经告诉读者如何结合statistics profile 和statistics IO语句的输出来创建索引。这里分析一个稍微复杂一些的例子。SQL语句如下:SELECT CurrentseNo FROM v_ptdata_edss WHERE MRN = @P1Statistics IO的输出如下:Table 'ptseoutpat'. Scan count 2, logical reads 8, physical reads 0, read-ahead reads 0. 阅读全文
posted @ 2011-12-30 11:32 xiaohuime 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 一、前言很多数据库系统性能不理想是因为系统没有经过整体优化,存在大量性能低下的SQL 语句。这类SQL语句性能不好的首要原因是缺乏高效的索引。没有索引除了导致语句本身运行速度慢外,更是导致大量的磁盘读写操作,使得整个系统性能都受之影响而变差。解决这类系统的首要办法是优化这些没有索引或索引不够好的SQL语句。本文讨论和索引相关的有关内容,以及通过分析语句的执行计划来讲述如何应用索引技术来优化SQL 语句。通过分析执行计划,读者可以检查索引是否有用,以及如何创建高效的索引。本文对数据库管理人员以及数据库系统开发人员都有一定参考意义。如果读者不知道应该优化数据库系统的哪些SQL语句,那么建议读者参考 阅读全文
posted @ 2011-12-30 11:30 xiaohuime 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 三、优化SQL语句的系统设计原则仅仅简化还是不够。SQL语句的优化在系统的设计阶段就要通盘考虑。系统设计越合理,需要优化或后期返工的地方就越少。系统逻辑流程如果不合理,那么常会导致本来需要一个操作就可以解决的问题却要作好几个操作才能实现,反映在数据库上就是发出过多或过复杂的SQL语句。所以数据库系统设计是系统高性能运行的首要关键。很多系统开发者更关心功能的实现而不是数据库系统的整体运行性能。相当多的开发者对数据库性能优化技术不是很了解,写出来的SQL语句往往缺乏效率。下面让我们罗列一些在设计阶段就应该考虑的和性能密切相关的一些原则。1)限制结果集要尽量减少返回的结果行,包括行数和字段列数。返回 阅读全文
posted @ 2011-12-30 11:06 xiaohuime 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 一、引言一个凸现在很多开发者或数据库管理员面前的问题是数据库系统的性能问题。性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化。本文通过一个例子讲述如何应用简化技术来优化SQL 语句,也讨论在系统设计阶段应该考虑的和语句性能密切相关的一些问题。如果读者不知道应该优化数据库系统的哪些SQL语句,那么建议读者参考笔者的另外一篇文章,《应用Profiler优化SQL Server数据库系统》。本文不讨论索引,建议读者参考笔者的文章《应用索引技术优化SQL语句》,因为索引技术是优化SQL语句的重要部分。二、简化SQL语句1.简 阅读全文
posted @ 2011-12-30 10:59 xiaohuime 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 概述当你的SQL Server数据库系统运行缓慢的时候,你或许多多少少知道可以使用SQL Server Profiler(中文叫SQL事件探查器)工具来进行跟踪和分析。是的,Profiler可以用来捕获发送到SQL Server的所有语句以及语句的执行性能相关数据(如语句的read/writes页面数目,CPU的使用量,以及语句的duration等)以供以后分析。但本文并不介绍如何使用Profiler 工具,而是将介绍如何使用read80trace(有关该工具见后面介绍)工具结合自定义的存储过程来提纲挈领地分析Profiler捕获的Trace文件,最终得出令人兴奋的数据分析报表,从而使你可以高 阅读全文
posted @ 2011-12-30 10:43 xiaohuime 阅读(214) 评论(0) 推荐(0) 编辑