快速而又脏的方式来比较SQL Server的性能

时间:2008-10-08 04:29:56

标签: sql-server database performance benchmarking

除了我之前关于Optimal RAID setup for SQL server的问题之外,还有人会建议一种快速而又脏的方法来对新旧服务器上的数据库性能进行基准测试以进行比较吗?显然,正确的方法是监控我们的实际使用情况并设置各种性能计数器并捕获查询等,但我们还没有达到那种复杂程度,这不是我们能够做到的。匆忙做所以在此期间,我会追求一些不那么精确的东西,但要做得快,而且总比没有好。只要它没有误导,这将比没有更糟糕。它应该是SQL Server特定的,而不仅仅是“合成”基准。如果我们可以使用我们的实际数据库,那就更好了。

3 个答案:

答案 0 :(得分:1)

使用新旧服务器测量应用程序本身的性能。这不一定容易:

  • 在您的应用程序上设置性能测试环境(取决于您的架构,这可能包含多台计算机,其中一些可能是虚拟机,但其中一些可能不是)
  • 创建“驱动程序”程序,使应用程序模拟工作
  • 在相同条件下运行批量工作 - 记住在运行之间重新启动数据库服务器以取消缓存效果(否则您的第二次和后续运行可能会非常快)

确保性能测试环境中有足够的硬件计算机,以便能够大量加载数据库 - 这可能意味着将某些虚拟机换成真正的硬件。

请记住在性能测试环境中使用生产级硬件 - 即使它很昂贵。

我们的数据库性能测试集群包含六台硬件机器,其中一些是生产级的,其中一台包含昂贵的存储阵列。我们在7日还有大约12个虚拟机模拟服务的其他部分。

答案 1 :(得分:0)

你可以随时插入,读取和删除几百万行 - 这不是一个真实的操作组合,但它应该很好地应对磁盘......

答案 2 :(得分:0)

找到至少需要花费一些时间的几个查询,或者至少是您怀疑需要花费时间的查询,如果您还没有这些查询,请插入大量数据,并运行已设置的查询: SET STATISTICS IO ON 设置统计时间 SET STATISTICS PROFILE ON 这些应该让您大致了解所消耗的资源。

您还可以运行SQL Server Profiler来大致了解哪些查询需要花费很长时间,以及它们需要多长时间以及其他统计信息。它会输出大量数据,因此请尝试将其过滤一段时间,可能需要长时间或其他性能统计数据。