前面的推文我们掌握了JVM调优技术。今天给大家分享MS SQL数据库监控与调优技术。后续文章都会系统分享干货,带大家从0到1学会性能测试。
其实在进行性能测试过程中,我们选择的业务都与数据库有关,即选择的业务都会经过数据库的处理,那么业务的响应时间就包含数据库查询的时间,同样如果数据库查询的时间过长,那么将直接导致事务的响应时间过长,所以数据库的调优也是性能调优的重要组成部分。
关于数据库调优有两部分的内容:数据库的监控与调优,而关于数据库的监控又分为两个方面:
一是SQL Server资源监控;
二是查询语句执行的监控;
而调优则主要是索引调优级、T-SQL调优和阻塞、死锁的调优。
今天先学习监控SQL Server资源
监控SQL Server资源
如果测试过程中发现是由于SQL Server性能引起的事务响应时间过长,那么接下来就必须分析是什么原因导致SQL Server出现性能问题,通常的原因有两个方面的可能性:
一是、SQL Server资源出现问题;
二是、查询语句速度太慢;
如果是资源的原因导致性能出现问题,那么接下来需要深入分析是什么系统资源导致SQL Server性能出现问题的。
01瓶颈类型
所谓的瓶颈是指数据库的性能受到某个方面资源的限制,导致数据库的性能未达到预期期望或是性能没有达到最佳状态,这样在性能测试过程中就必须分析诊断是什么原因导致数据库性能出现瓶颈,当找到原因后就需要想办法解决,例如,某服务器的CPU使用率将近达到100%,那么可以确定是服务器的CPU出现瓶颈。
关于瓶颈的原因可能有很多种,在性能测试过程中不可能一次性找到所有的问题所在,必须经过多次测试才能找到最佳的配置方案,当然这样做的目的很简单,就是希望数据库服务提供最佳的性能,同时资源利用率上达到一个平衡。
从硬件资源的维度来划分,瓶颈主要包括三个方面:内存、磁盘和CPU。数据库中所有的数据都存储在磁盘中,当数据库从磁盘中读取或写入数据页面时,需要消耗内存,如果此时缺少内存,这样会对SQL Server的产生严重的影响,因为当内存不够时,SQL Server被将分页写到磁盘,这对性有带来很大的损失。
同理,如果系统的磁盘出现问题,那么读取磁盘中的数据页和往磁盘中写数据页时,都会导致读写数据和速度被延迟。
在一些时候SQL Server需要计算总和、排序或连接数据库,这些操作都需要CPU时钟周期,那么如果CPU不够使用的话,SQL Server也一样会受到严重的影响。