【问题标题】:How many requests can SQL Server handle per second?SQL Server 每秒可以处理多少个请求?
【发布时间】:2009-12-01 08:32:19
【问题描述】:

我正在使用 JMeter 来测试我们应用程序的性能。但是我发现当我从 JMeter 发送 20 个请求时,原因结果应该是向 sql server 添加 20 个新记录,但我只找到 5 个新记录,这意味着 SQL server 丢弃了其他请求(因为我拿了一个日志,并确保将插入的新记录发送到 sql server。)

有人有想法吗? SQL Server 每秒可以处理的请求阈值是多少?还是我需要做一些配置?

是的,在我的应用程序中,我试过了,但似乎只接受了5个请求,我不知道如何配置,然后它可以接受更多。

【问题讨论】:

  • 有趣的话题,我也很好奇。
  • +1 是的,安静有趣...期待答案。
  • 对此不得不轻笑。在任何给定的时间内,Stack Overflow 都会收到数千个批处理请求。我们有一个客户每秒处理超过 10 万个批处理请求,全天候持续。

标签: c# c++ sql-server database jmeter


【解决方案1】:

我不相信每秒请求的 nr 与 SQL Server 丢弃您的插入直接相关。可能存在回滚或未能提交插入的应用程序逻辑错误。或者应用程序无法处理并发并插入违反约束的数据。我也会检查服务器日志是否存在死锁。

【讨论】:

  • 我使用 linq 和 .net 插入请求,但无法捕获任何异常
【解决方案2】:

使用 SQL Profiler 或 LINQ 数据上下文进行日志记录,以查看实际发送到服务器的内容,然后确定问题所在。

像这样启用数据上下文日志:

datacontext.Log = Console.Out;

附带说明,我在 SQL Server 中每秒处理 10 000 个事务,所以我认为这不是问题所在。

【讨论】:

  • 你能告诉CPU,RAM,SSD IOP吗?
【解决方案3】:

这在很大程度上取决于您正在执行的查询类型。您可以有许多查询请求已经在缓冲区中的数据,因此不需要磁盘读取访问,或者您可以进行读取,这实际上需要磁盘访问。如果您的数据库很小并且您有足够的内存,那么您可能始终将所有数据都保存在内存中 - 访问会非常快,您可能会获得 100 多个查询/秒。如果您需要读取磁盘,则依赖于您的硬件。我选择了带有 UltraSCSI-160 驱动器的 UltraSCSI-160 控制器,这是您可以在 PC 类型平台上获得的最快选择。我每晚处理大约 75'000 条记录(它们是从另一台服务器下载的)。对于我处理的每条记录,程序会进行大约 4 到 10 次查询以将新记录放入正确的“槽”中。整个过程大约需要3分钟。我在具有 768 MB RAM 的 850 MHz AMD Athlon 机器上运行它。 希望这能让您对速度有所了解。

【讨论】:

  • 我只是使用linq插入记录。
【解决方案4】:

这是一个老案例,现在是2017年,2019年我等着看会发生什么

https://blogs.msdn.microsoft.com/sqlcat/2016/10/26/how-bwin-is-using-sql-server-2016-in-memory-oltp-to-achieve-unprecedented-performance-and-scale/

SQL Server 2016 1 200 000 批请求/秒 支持 LOB 的内存优化表,本机编译的存储过程



【讨论】:

    【解决方案5】:

    要获得 SQL Server 和其他 RDBMS 的基准测试,请访问Processing Performance Council Web

    【讨论】:

      【解决方案6】:

      您还可以使用 Sql Server 配置文件来检查您的查询是如何执行的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-24
        • 1970-01-01
        • 1970-01-01
        • 2023-04-10
        • 1970-01-01
        • 2012-03-18
        • 2019-04-11
        • 1970-01-01
        相关资源
        最近更新 更多