测试存储过程的可伸缩性

kac*_*apy 14 performance sql-server testing scalability performance-testing

我有一个电子邮件应用程序,它将被要求在每个页面加载时将给定用户的新消息数量传送到 UI。我在数据库级别上测试了一些变化,但所有内容都由存储的 proc 调用抽象。

我试图猛击数据库以查看断点(每秒请求数)是什么。

简而言之,我有一个表,比如这个 userId、newMsgCount,在 userId 上有一个聚集索引。SQL 应该能够每秒处理成百上千个这样的响应。我认为落后者是我的 .NET 应用程序。

我怎样才能使这个测试成为一个很好的测试来实现基于 SQL 性能的测试结果?

有没有一个工具,我可以给它一个存储的过程名称和参数,以便它打我的数据库?

我想看看数据库是否可以返回分钟。每秒 250 个响应。

Mar*_*ith 11

SQLQueryStress 是一个很好的小规模并发测试工具,但它并不能真正胜任负载测试的工作。Microsoft 提供了一个鲜为人知的免费工具集,它可以应对大多数 SQL Server 压力测试场景,即RML 实用程序

工具的简要概述:

  • ReadTrace将 Profiler 跟踪从 .trc 文件转换为 .rml(重播标记语言)。
  • OStress用于在服务器上重放 .rml 和 .sql 文件。
  • ORCA(OStress 重放控制代理)协调 OStress 的分布式实例之间的重放。
  • Reporter提供性能分析报告。

SQLCat 团队有一篇出色的快速入门文章,其中包括示例数据库和工作负载,Precision Performance for Microsoft SQL Server using RML Utilities 9.0

您可以选择分析活动以进行重放,或者,可能更适合您的场景,手动启动一组 .sql 脚本,然后通过 OStress 和 ORCA 重放。

用于负载测试和调查性能问题的绝佳工具。


Sta*_*hns 6

您可以使用的一种工具是SQLQueryStress。为快速入门提供:存储过程、迭代次数和线程数。然后开始压力测试。将显示 CPU 秒数、逻辑读取等指标。