SQLServer性能调优经验总结

我相信很多朋友,无论是开发、建筑、或DBA,是经常听到的词调整。说到调整可能会使许多技术人员有激情,可能使许多人感到苦恼。当然,有很多人不关心它,因为不是每个人都有项目,也不是每个人的性能高。

在企业主流的Internet数据库的开发和应用中,其重要性不言而喻,而数据库的性能对于整个系统的性能至关重要,这里不用说。

性能调优的SQL Server是一个非常广泛的话题。说实话,可能至少需要几本书从理念到实践的全面清晰透彻。本文仅仅是一个概括的概念,它是希望读者能有一个新的认识,在路上帮助他们。如果你有很多的朋友感兴趣,你可以在将来分享一些实际经验。

首先要明确,性能调优的目标

从最直观和最常见的观点来看,要点如下:

最佳响应时间

最佳响应时间是多少最流行的一点是,在优化、查询、更新和其他操作之后,数据库响应更快,时间更少。

更常见的是,以前执行的SQL查询可能需要3秒,而在索引之后,它不是在1秒内完成的。索引,这也是最典型的优化方法便宜。

在优化响应时间时,您需要了解用户环境、程序、环境、用户和数据等方面的知识。

优化吞吐量

谈到吞吐量,您应该考虑并发性。事实上,它是在同一时间处理请求的能力。如何提高数据库的反并发能力首先,我们需要知道SQLServer访问数据,如何控制并发访问(事务隔离级别、锁等),如何与底层操作系统进行交互,并理解多线程的知识,流程等。

一个常见的方法是减少事务隔离级别(在一定程度上牺牲数据一致性),等等。第二,在单个DB服务器达到一定瓶颈后,通过集群等方式实现负载均衡,达到反并发的目的,效果立竿见影。

性能调优的方法——迭代



基线

一般来说,它是用来计算或比较的标准,通常是基于当前的系统性能,或者基于匹配系统的性能,这意味着每个组件发挥最大的作用。

成本

用于升级、替换等的时间、金钱、劳力等,以提高组件的性能。

基于用户期望的基线定义可能涉及以下因素

以前的经验,应用基准,行业标准,以前版本的情况

基线的表示,包括:每秒的批处理,每秒传输,每秒数据,磁盘扫描时间,等等。

影响性能的因素分析:

数据库设计(是否复杂的范例、合理的归档、分区、子表等)

软件系统(操作系统优化、数据库系统配置、资源规划和监控等)

硬件基础设施(设备规格、硬件性能、负载平衡、容灾等)

SQL语句、索引和统计信息、事务和锁、应用程序访问代码(过多的连接、频繁的开关等)

性能调优顺序:



从左到右考虑技术难度、成本、效果

检测方法

识别问题,探究原因,提供可能的解决方案,执行最可能的解决方案,确认是否成功解决了(如果没有,重复前面的步骤),完成剩下的工作。

这些在检测方法中的工作将被细分,并且会有很多的工作,暂时没有更多的描述。具体调优的步骤,性能调优工具的使用,以及下面的文章继续。