清单:负载测试——SQL Server性能调整的魔法棒

没有什么事情比这更糟了,采纳一个新的应用程序,而它的性能是如此的糟糕,导致业务在一片惊叫声中暂停。这并不是新出现的现象;这就是事实,我经常遇到这样的事实。我打赌你也曾经经历过。那么如何防止这些性能问题,有什么解决方案?

在这些应用程序“在惊叫声中暂停”的情况中,应用程序通常都已经在按照功能性分配的短暂的测试时间内进行过适当的测试了。但是充分吗?由于竞争和全球经济的原因,迅速应用于业务意味着只进行了最小化的测试。同样,最小化的测试也成为按时将应用程序发布给用户群体的可接受的风险之一。另一点需要注意的是,负载测试太贵了,所以修正产品问题的成本也是也通常是比较小的——至少在发布应用程序的时候它不会妨碍进展和创新性,对不对?

不幸的是,我具有相反的经历:企业为运行得极其糟糕的应用程序所付出的有形的和无形的代价超过了采用可靠的负载测试方法在人力、程序,以及技术上面的投资。因此,我愿意提供以下对你的应用程序进行负载测试的清单,它将会成为防止你的SQL Server性能调整问题的魔法弹。

清单:负载测试——SQL Server性能调整的魔法棒

项目管理

平衡项目管理方法学,确保项目按照一个确定的过程进行,尽量减少或者避免遗漏步骤,包括对每个版本的应用程序进行负载测试。

管理层的支持

在负载测试的需求和收益的基础上与IT经理们合作。获得他们对正确分配时间为每个应用程序进行负载测试的支持。

性能需求

了解系统应该支持的用户、事务、数据集和可接收的处理时间等信息。如果这些信息没法确定,与企业进行沟通,了解在现有的硬件和软件基础上,应用程序的生命周期中能够支持多少用户。

用户期望

确定用户和业务期望——为了保证应用程序正确运行,需要进行功能性和负载的测试。

任务时间表

按照你的团队具有的严格意义上的资源,计算完成这些负载测试和代码检查任务所需的时间,在你的项目计划中,为其安排充分的时间。

负载测试工具

对你要用来进行负载测试的工具进行标准化。以下是一个简短的列表,如果你对产品不熟悉的话。点击每一条都会进入该工具的说明页。

WebLOAD (负载测试)

Web 性能测试工具

QuotiumPRO

Empirix e-Load

Quest Benchmark Factory for Databases

Mercury LoadRunner

Knowledgestorm

Scandiasoft DbValidator

WAPT 3.0

OpenLoad

61.187.235.235

负载测试过程

将你的应用程序负载测试过程标准化,建立文档模板,对测试过程的流线进行编码,同时记录应用程序涉及的结果。考虑在软件版本的基础上采用迭代的方式。

代码检查

所有的代码都会让开发人员和数据库管理员进行测试,以确认明显的功能,但是还要安排第二个人来进行测试。如果你没有预算请一位全职或者兼职的测试人员的话,那么可以考虑让开发团队互相检查。如果你有测试人员的预算,那么就让你的团队一起来为应用程序增加负载吧。

将负载测试过程流水线化

当应用程序发布为产品时确定一些对系统性能起作用的因素,然后将其用在每一次的应用程序发布版本上。

需要进行负载测试的时候进行负载测试

虽然对每个应用程序都进行负载测试是很好的,但是成本通常是有限的。因此,从那些出现过性能问题的单个应用程序开始,并且从这个应用程序中吸取教训。将知识扩展开来,在你的企业中创建一个最好的实践指南,以此在应用程序的开发阶段防止性能问题的出现,这也会负载测试过程流水线化。

通过各种方式,避免将性能问题引入产品环境中。实际情况是,不能每个场景都经过测试,但是可以定位你的应用程序中的核心内容,并且随着你的经验积累而日益提高。考虑将上面的清单作为进行负载测试的开始点,并且与你的团队讨论一下什么选项可以获得高性能。你在负载测试方面有什么经验?告诉我,然后调整状态,准备阅读下一部分的SQL Server性能调整贴士,我们将会提供更多本领域的观察报告,并且简单推荐可能改善整体系统性能的方法。

时间: 2024-09-07 21:02:25

清单:负载测试——SQL Server性能调整的魔法棒的相关文章

怎么整理 SQL Server性能调整清单

我需要做什么?太多了,我从哪里开始?我下一步该做什么?哇,我的SQL Server起来了!如果你从一开始就不知道要到哪里去,并且异常中断了SQL Server的运行,那么你做到了.看看这篇如何获得高性能SQL Server的性能调整清单吧. SQL Server性能调整清单 准备 当你开始解决一个现有的性能调整问题或者从一个新的系统开始,非常期望得到高性能,那么花些时间在计划和分析如何达到项目目标吧.确保整个团队都理解了SQL Server现在正在做什么,它将会作什么,以及它以后应该如何做. 有

MSSQL · 实现分析 · Extend Event实现审计日志对SQL Server性能影响

背景 在上一篇月报分享中,我们介绍了SQL Server实现审计日志功能的四种方法,最终的结论是使用Extend Event(中文叫扩展事件)实现审计日志方法是最优选择,详情参见MSSQL · 实现分析 · SQL Server实现审计日志的方案探索.那么,使用Extend Event实现审计日志的方案会面对如下疑问: Extend Event是否满足可靠性要求 Extend Event是否满足吞吐量要求 Extend Event对SQL Server本身语句查询性能影响到底有多大 这篇文章就是

sql server 性能优化之nolock_MsSql

伴随着时间的增长,公司的数据库会越来越多,查询速度也会越来越慢.打开数据库看到几十万条的数据,查询起来难免不废时间. 要提升SQL的查询效能,一般来说大家会以建立索引(index)为第一考虑.其实除了index的建立之外,当我们在下SQL Command时,在语法中加一段WITH (NOLOCK)可以改善在线大量查询的环境中数据集被LOCK的现象藉此改善查询的效能. 不过有一点千万要注意的就是,WITH (NOLOCK)的SQL SELECT有可能会造成Dirty Read,就是读到无效的数据.

初涉SQL Server性能问题(1/4):服务器概况

原文:初涉SQL Server性能问题(1/4):服务器概况 当你作为DBA时,很多人会向你抱怨:"这个程序数据加载和蜗牛一样,你看看是不是服务器出问题了?"造成这个问题的原因有很多.可能是程序应用服务器问题,网络问题,程序实现方式问题,数据库服务器负荷过重.不管是哪个问题,数据库总是第一个被抱怨的.我们DBA的职责就是找出问题所在,并解决它们. 问题解决第一步,诊断分析: 1 SELECT 2 parent_node_id AS Node_Id, 3 COUNT(*) AS [No.

sql server 性能优化之nolock

伴随着时间的增长,公司的数据库会越来越多,查询速度也会越来越慢.打开数据库看到几十万条的数据,查询起来难免不废时间. 要提升SQL的查询效能,一般来说大家会以建立索引(index)为第一考虑.其实除了index的建立之外,当我们在下SQL Command时,在语法中加一段WITH (NOLOCK)可以改善在线大量查询的环境中数据集被LOCK的现象藉此改善查询的效能. 不过有一点千万要注意的就是,WITH (NOLOCK)的SQL SELECT有可能会造成Dirty Read,就是读到无效的数据.

SQL Server 性能调优培训引言

原文:SQL Server 性能调优培训引言      大家好,这是我在博客园写的第一篇博文,之所以要开这个博客,是我对MS SQL技术学习的一个兴趣记录.       作为计算机专业毕业的人,自己对技术的掌握总是觉得很肤浅,博而不专,到现在我才发现自己的兴趣所在,于是我通过网络找了各种MS SQL技术的相关文档,总觉得讲得比较干涩,没有一个系统性,今年3月底我无意浏览到一个网站提供免费的性能调优的半年培训(http://www.sqlpassion.at/academy/performance

SQL Server 性能调优(一)——从等待状态判断系统资源瓶颈

原文:SQL Server 性能调优(一)--从等待状态判断系统资源瓶颈 通过DMV查看当时SQL SERVER所有任务的状态(sleeping.runnable或running) 2005.2008提供了以下三个视图工详细查询: DMV 用处 Sys.dm_exec_requests 返回有关在SQL Server中执行的每个请求的信息,包括当前的等待状态 Sys.dm_exec_sessions 对于每个通过身份验证的会话都返回相应的一行.此时图是服务器范围的视图.此视图首先可以查到服务器负

初涉SQL Server性能问题(2/4):列出等待资源的会话

原文:初涉SQL Server性能问题(2/4):列出等待资源的会话 在初涉SQL Server性能问题(1/4)里,我们知道了如何快速检查服务器实例上正运行的任务数和IO等待的任务数.这个是轻量级的脚本,不会给服务器造成任何压力,即使服务器在高负荷下,也可以正常获得结果. 问题检测的第2步是获取在进行任何资源等待的会话.下面的脚本会帮助我们获得这些信息.这个查询需要预建立一个函数,如果会话是由SQL Server代理启动的话,会显示具体的作业名. 1 /********************

初涉SQL Server性能问题(3/4):列出阻塞的会话

原文:初涉SQL Server性能问题(3/4):列出阻塞的会话 在 初涉SQL Server性能问题(2/4)里,我们讨论了列出等待资源或正运行的会话脚本.这篇文章我们会看看如何列出包含具体信息的话阻塞会话清单. 1 /******************************************************************************************/ 2 CREATE FUNCTION [dbo].dba_GetStatementForSpid