电脑技术学习

SQL Server 根据访问历史日志自动分析并提供优化策略

dn001

  性能调优(如何把数据库调到最优化)以及性能评定(就是如何让我知道我的数据库调整到了最优化)这两件事对于大部分的DBA来说都是非常痛苦的事情。SQL Server是否能够根据访问历史日志自动分析并提供优化策略?在性能评定和调优方面,微软专家有没有宝贵的经验可以和中国用户分享,或者有没有其他相应的工具可以帮助我们做这些工作。

  【微软专家】关于这个问题,2007年3月SQL Server 2005 SP 2发布了一个补丁,这个补丁里面有一个内部的结构,它能够搜集性能方面的一些数据。

  这些信息是在数据库中,有结构能够使得用户获取这些数据,这个功能叫做动态管理视图——DMV。在SP2中,我们提供的是一些报表,这些报表能够帮助你来发现一些类型的查询。比如说最慢的查询是什么?比如说最消耗CPU的10个查询是什么?比如说IO系统用的最多的10个查询是什么?这些报表是用一个图形的界面呈现出来的,而且这些信息都是在你进行操作时获取下来的,通过报表的形式呈现给你,你可以进行分析。这些报表给你的界面是可以让你单击这些报表时,它可以给你显示出这些查询计划是什么?如果你能够理解这些查询计划的话,你就能够明白造成一个查询性能不好的原因是什么。这一功能设计,数据搜集的过程是一个非常轻盈的过程,把对在线操作的影响尽可能减到非常小的程度。

  很多用户都把这一功能用到了他们的生产系统中,比如有一个客户,大家原来是使用SQL Server 2000,后来他们升级到了SQL Server 2005。在以前DBA的工作都比较的被动,这是什么意思呢?比如说查询慢了,用户告诉他们慢了,他们就需要去研究最低层的原因是什么。到了SQL Server 2005时,他们用DMV,用这个报表,使得现在的工作方式变成了一种很主动的工作方式。举一个例子,原来的查询可能需要运行五秒种,现在运行七、八秒了。它可以设定一个触发器,比如存储过程突然慢下去了,触发器就会收到一个通知,告诉DBA慢了。他就可以调查研究,造成性能衰减的原因是什么,在用户找到他们之前,他们就可以把这个问题解决掉了。从被动的工作方式变成了一种主动的工作方式。

  往前看,在未来,我们将继续在这些技术领域进行投资。使得对于性能的调试变得更加的简单,使DBA的工作也变得更简单一些。一个DBA可以同时管理更多的数据库,也让用户的一些误操作以及其他方面的一些影响减少到最小,这也是我们为什么通过努力使得我们从竞争对手之中脱颖而出,同时也是我们希望达到的一个目标。

  团队使用方面,也是我们下一个要发布的版本中,他们也在做很多的工作,使得查询变得更快。并且维护起来也更加容易。如果在数据库中有一些丢失的信息,我们也可以进行恢复,让用户获得更大程度的自动化的方式,用自动的方式来解决很多的问题。这样使得我们最终为客户提供价值所在,这也是我们的产品区分于其他竞争对手的一种方式。

  SP2的这个性能类似于汽车上的性能仪表板,这个是和SQL Server的结果呈现连在一起的,是用这个当做仪表板,用结果呈现来把数据呈现出来。

  【小知识】DMV本身是一个视图,它本身并不会运行或者不运行,这个数据积累是一直在发生的,你只需要有一个外部的功能、程序来获取这个数据。在你正常运行时,这些数据搜集是一直在发生的。