权衡SQL Server索引对性能的影响

日期: 2010-07-21 作者:Don Jones翻译:孙瑞 来源:TechTarget中国 英文

做DBA的应该都知道,SQL Server的诸多元素当中,对于性能影响最大的就莫过于索引了,这一点几乎毫无争议。   你所添加的每一个索引,对于读取数据库数据的操作都会有潜在的加速作用,但是有时会对写数据造成降低速度的影响。一个设计良好的索引,可以为数据库提供最大限度可读性的前提下,尽量降低对写数据操作的影响。   那么,我们该如何达到这一目标呢?   最简单的方法就是使用SQL Server Profiler来捕获当天的生产流量值。

事实上,如果你可以在短时间内捕获具有真实代表性的数据样本,比如一小时,那么就用这个方法吧。你可以使用SQL Server Profiler内置的调试模板,捕获正确……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

做DBA的应该都知道,SQL Server的诸多元素当中,对于性能影响最大的就莫过于索引了,这一点几乎毫无争议。

  你所添加的每一个索引,对于读取数据库数据的操作都会有潜在的加速作用,但是有时会对写数据造成降低速度的影响。一个设计良好的索引,可以为数据库提供最大限度可读性的前提下,尽量降低对写数据操作的影响。

  那么,我们该如何达到这一目标呢?

  最简单的方法就是使用SQL Server Profiler来捕获当天的生产流量值。事实上,如果你可以在短时间内捕获具有真实代表性的数据样本,比如一小时,那么就用这个方法吧。你可以使用SQL Server Profiler内置的调试模板,捕获正确的信息并将它们录入到它所运行的计算机文件中。

  下一步,运行数据库引擎优化顾问(Database Engine Tuning Advisor,DETA),将SQL Server Profiler得到的数据利用起来。记住,如果你捕获的流量比较大,比如一整天的值,那么DETA要运行的时间就会长一些。

  数据库引擎优化顾问需要时间去分析检测所有的数据库实时查询,这些查询是通过SQL Server的查询优化器的,然后DETA会向优化器索要执行相应查询的索引信息。它会对得出的结果执行计划进行分析,然后找出降低性能的区域,并针对这一区域执行更多或更少的索引,以便看出哪种解决方案更好。

  每一个建议都将获得一个评分,然后DETA继续处理下一个查询。如果下一个查询得出相同的建议,那么该建议就会得到加分。以此类推,当所有的查询都经过分析之后,得分最高的建议就会显示出来,你可以根据建议进行相应的修改。

  注意:以上所描述的场景是从人类思维的角度去分析数据库引擎优化顾问的工作原理,而DETA在实际工作中的原来要复杂的多,我们在这里就不赘述了。

  最方便的地方,是数据库引擎优化顾问可以直接执行相应的建议。你还可以选择接受或拒绝该建议,而DETA可以自动地执行你选择接受的建议。这样你就可以根据实际环境中数据库的运行情况,对系统做出最佳的优化。

  当然,运行中的索引维护同创建正确索引是一样重要的,因此下面这几条建议希望对DBA也能有所帮助:

  •   经常性地整理你的SQL Server索引,以减少由页面分割造成索引内的碎片;
  •   尽量减少重建索引的频率,因为这样做不仅费时,而且对应用程序的影响也是巨大的。建议每周做一次数据库索引整理,每个月做一次数据库索引重建;
  •   确保你的数据库有最新的索引统计信息,无论是SQL Server自动更新统计还是手动更新,这都是DBA日常工作的一个重要组成部分。

作者

Don Jones
Don Jones

投稿作者

翻译

孙瑞
孙瑞

相关推荐

  • Notre Dame对云端SQL Server性能基准的探索实践

    确立SQL Server的性能基准,对于云端迁移来说是至关重要的第一步,一位来自于University of Notre Dame 的DBA表示,他正在试图通过数据库监控软件,找出SQL server的性能基准。

  • DBA必须掌握的数据库恢复管理技术

    如果没有备份副本,数据库管理员就无法还原数据库,所以DBA在恢复之前倾向于考虑备份是合乎逻辑的。 但是,对我来说,这种逻辑一直是错误的。

  • 表征数据库性能问题的三个指标

    即使数据库结构定义和SQL代码编写非常完美,应用程序性能都可能下降。如果性能问题不能得到及时纠正,那么就可能为公司带来很大的损失。

  • DBA也要和领导抢饭碗?

    数据库架构师Ziaul Mannan 认为,DBA有成为高管的潜在可能,而这种潜力在过去往往被忽视,他还将证明DBA技能到领导力的转变是可行的。