SQL Server 性能调优培训引言

时间:2023-03-11 15:26:01

原文:SQL Server 性能调优培训引言

大家好,这是我在博客园写的第一篇博文,之所以要开这个博客,是我对MS SQL技术学习的一个兴趣记录。

作为计算机专业毕业的人,自己对技术的掌握总是觉得很肤浅,博而不专,到现在我才发现自己的兴趣所在,于是我通过网络找了各种MS SQL技术的相关文档,总觉得讲得比较干涩,没有一个系统性,今年3月底我无意浏览到一个网站提供免费的性能调优的半年培训(http://www.sqlpassion.at/academy/performance-tuning-training-plan/),网站所有人会在每周往你邮箱发送一份性能调优的培训材料,于是在今天,一个多月学习下来,我觉得自己对SQL SERVER的理解已经开始深入,所以我觉得应该把这些材料共享给大家,顺便对自己学习MS SQL技术一个记录。

因为我觉得,很多东西只有自己对别人讲解一遍,才会加深自己的理解,顺便提升自己。

以下开始是我的学习材料分享,这个是第0篇,总论:

  • 第1个月:数据库基础

  • 在第1个月我们会通过讨论在SQL SERVER中的基本概念,建立SQL SERVER的基础。在第一个月的4个星期里我们会学到:
  • 第2个月:索引

  • 基于你已在第1个月学到的知识,第2个的一切都是关于SQL Server中的索引。有了好的索引战略,你就可以获得大幅度提速SQL Server工作。这4周我们会涵盖(以下)细节。
    • 第5周 堆表
    • 第6周 聚集索引
    • 第7周 非聚集索引
    • 第8周 覆盖索引 卸载点(Tipping Point)
  • 第3个月:执行计划

  • 当我们提交查询给SQL Server,我们通过T-SQL语句只告诉SQL Server我们要什么。但在SQL Server内部却是编译成执行计划。执行计划是我们如何获取我们需要数据的获取战略。如果你有性能问题,你就需要理解如何读懂并调整生成的执行计划。这4周你会学到关于执行计划的下列内容。
    • 第9周 理解执行计划
    • 第10周 计划缓存
    • 第11周 重编译
    • 第12周 并行执行计划
  • 第4个月:统计信息

  • 统计信息是SQL Server数据库里最重要的部分,在生成执行计划时,统计信息使用来决定你的查询里多少列可以被返回。如果你的统计信息过期了,你会获得来自SQL Server次佳的执行计划。因此我们把一个月的时间致力于统计信息,只有这样你才可以对它们非常熟悉。这个月我们会谈到:
    • 第13周 为什么统计信息如此重要
    • 第14周 直方图与密度(The Histogram & the Density Vector)
    • 第15周 列相关的问题(Problems with Column Correlations)
    • 第16周 SQL Server 2014中的基数预估(Cardinality Estimation in SQL Server 2014)
  • 第5个月:锁,阻塞,死锁

  • 到目前为止作为开发或数据库管理员的你,你的生活都还太平,因为我们只是单用户与SQL Server打交道。如果是多用户,在SQL Server内部会发什么呢?在那个情况下SQL Server需要获得锁,这个最终会引发阻塞的情况。而且,你若不幸的话,阻塞会导致死锁。为你准备(迎接)这些情景,这个月我们会谈到:
    • 第17周 事务隔离级别
    • 第18周 乐观并发控制(Optimistic Concurrency)
    • 第19周 锁升级(Lock Escalations)
    • 第20周 死锁
  • 第6个月:性能监控与故障排除

  • 哇哦,终于你到了性能调优的最后一个月。你已经在成为性能调优专家的路上了。但是你还是需要一些额外知识:在SQL Server中运行中,我们如何做性能监控与故障排除来避免性能上的问题。因此在最后一个月我们会涉及:
    • 第21周 PAL工具
    • 第22周 等待统计(Wait Statistics)
    • 第23周 临时表(TempDb)
    • 第24周 数据库维护(Database Maintenance)