第0/24周 SQL Server 性能调优培训引言

2022-11-16 00:00:00 执行 性能 计划 统计信息 个月

 大家好,这是我在博客园写的篇博文,之所以要开这个博客,是我对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个星期里我们会学到:
    • 第1周 SQL SERVER 如何执行一个查询 0420_01_SQL_SERVER如何执行一个查询.rar
    • 第2周 _SQL Server 中数据存储的基本单位 0430_02页_SQL_Server中数据存储的基本单位.zip
    • 第3周 _SQL Server中管理空间的基本单位 0504_03区_SQL_Server中管理空间的基本单位.rar
    • 第4周 页面限制8060 bytes 0511_04页面限制8060_bytes.rar
  • 第2个月:索引

  •         基于你已在第1个月学到的知识,第2个的一切都是关于SQL Server中的索引。有了好的索引战略,你就可以获得大幅度提速SQL Server工作。这4周我们会涵盖(以下)细节。
    • 第5周 堆表 0518_05_堆表.rar
    • 第6周 聚集索引 0602_06_聚集索引.rar
    • 第7周 非聚集索引 
      0608_07_00聚集表上的B树结构.rar 
      0615_07_01非聚集索引.rar 
      0624_07_02SQL_Server的索引结构.part1.rar 
      0624_07_02SQL_Server的索引结构.part2.rar 
      0624_07_02SQL_Server的索引结构.part3.rar  
      0624_07_02SQL_Server的索引结构.part4.rar 
      0629_07_03非聚集索引的B树结构在聚集表.rar 
      0706_07_04非聚集索引的B树结构在堆表.rar
    • 第8周 覆盖索引 临界点(Tipping Point) 0713_08_覆盖索引、临界点.rar
  • 第3个月:执行计划

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

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

  •           到目前为止作为开发或数据库管理员的你,你的生活都还太平,因为我们只是单用户与SQL Server打交道。如果是多用户,在SQL Server内部会发什么呢?在那个情况下SQL Server需要获得锁,这个终会引发阻塞的情况。而且,你若不幸的话,阻塞会导致死锁。为你准备(迎接)这些情景,这个月我们会谈到:
    • 第17周 事务隔离级别 0914_17a悲观并发控制.rar 0922_17_悲观并发控制.rar 1012_17未提交读、提交读、不可重复读、幻影读(演示).rar 1019_17_可重复读、序列化(演示).rar 1027_17意向锁.rar
    • 第18周 乐观并发控制(Optimistic Concurrency) 0928_18_乐观并发控制.rar
    • 第19周 锁升级(Lock Escalations) 1007_19_锁升级.rar
    • 第20周 死锁(Deadlocking) 1109_20_死锁.rar
  • 第6个月:性能监控与故障排除

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

 

相关文章