哪个工具用于数据库(mssql)性能测试?编写自定义工具+分析器或Jmeter

时间:2011-09-19 15:36:16

标签: sql-server database performance jmeter sql-server-profiler

我想对我的数据库进行性能测试,因此我需要模拟对数据库的请求,并测量持续时间和其他统计信息。 我的数据库是MS Sql Server 2005/8,我的服务器在IIS下运行ASP.NET

我需要模拟的测试需要一些未在数据库端实现的流逻辑,测试工具需要实现它。

出于这个问题的目的,请忽略该流逻辑的影响,并假设它需要零时间和资源,因此不会影响结果。

我正在考虑两个选项:

  1. 在C#中编写我自己的自定义工具
    在c#中实现流逻辑,并且“我只是在多线程中运行测试”。 我不会在c#端测量任何东西,而是使用sql server profiler来测量数据库请求。

  2. 使用Jmeter(或其他等效工具?)
    使用jmeter实现流逻辑(使用标准组件或采样器,而不是执行代码)。这样我就不必自己处理线程,jmeter会为我做。在这种情况下,除了剖析器,我还可以使用Jmeter来测量数据库。

  3. 我更喜欢第一个选项,因为在C#中比较jmeter内置工具(逻辑控制器等),编写流程登录要简单得多。

    我在多线程方面有一些经验,我知道它会变得复杂,但在这种情况下,测试是独立的,不共享任何数据,所以我不需要处理很多锁定。

    我知道jmeter是一个很棒的工具,它可以很好地处理时间,但在我的情况下,我可以使用sql profiler。

    我是否低估了管理自我多线程的工作和困难? 我错过了别的什么吗?还有其他选择吗?

2 个答案:

答案 0 :(得分:2)

一些选项:

  1. 使用SQL负载测试。请参阅http://sqlloadtest.codeplex.com/
  2. Quest Software的Benchmark工厂。请参阅http://www.quest.com/benchmark-factory/
  3. 使用SQL事件探查器重播您录制的跟踪。请参阅http://msdn.microsoft.com/en-us/library/ms189604.aspxhttp://sqlserverpedia.com/wiki/Replaying_a_Profiler_Trace
  4. 使用OStress(RMUtilities的一部分)请参阅http://support.microsoft.com/kb/944837

答案 1 :(得分:0)

您可以使用Telerik的免费WebAii Web测试框架来创建web ui测试。 您也可以将它与单元测试一起使用,甚至作为单元测试的一部分使用。

但实际上,如果您需要测试数据库的性能,那么您可能希望尽可能“尽可能接近”数据库,尽量不要涉及Web UI。