0

我正在对 .NET Web 应用程序进行压力测试。我这样做有两个原因:我想看看在现实世界条件下的性能如何,同时确保我们在测试期间没有遗漏任何问题。我们在应用程序中有 30 个并发用户使用它,就像他们在正常工作过程中一样。大多数用户打开了应用程序的多个窗口。

  • 10 位用户:还不错
  • 20 位用户:放慢速度
  • 30 个用户:非常非常慢但没有超时

它已加载到生产服务器上。它是具有 2.66G Hz Xeon 处理器和 2 GB RAM 的虚拟服务器。我们正在使用 Win2K3 SP2。我们已经加载了 .NET 1.1 和 2.0,并且正在使用 SQLExpress SP1。

我们重新检查了所有表的索引,它们都是应有的。

我们如何提高应用程序的性能?

4

6 回答 6

3
  1. 您可能会遇到并发问题,具体取决于应用程序的运行方式。尝试使用“nolock”关键字进行阅读。

  2. 尝试为您的列添加表别名(并避免使用 SELECT *),这有助于 MSSQL,因为它不必“猜测”列来自哪个表。

  3. 如果您还没有,请转到 SPROC,这允许 MSSQL 为给定查询的正常结果集更好地索引您的数据。

  4. 尝试遵循 SPROCS 的执行计划,以确保它们使用您认为的索引。

  5. 对您的数据库运行跟踪以查看传入请求的外观。您可能会注意到一个特定的 SPROC 正在一遍又一遍地运行:如果可能的话,通常是在客户端缓存响应的好兆头。(查找列表等)

于 2008-09-12T14:13:31.627 回答
3

这只是我想到的,但是当你有 20 个以上的用户时,检查一下 SQL Server 使用了多少内存 - Express 版本的限制之一是它被限制为 1GB 的 RAM。因此,由于 Express 的限制,服务器没有足够的可用内存可能只是一个简单的问题。

于 2008-09-12T14:22:24.070 回答
0

更新:看起来 SQL Server express 不是问题,因为他们在以前版本的应用程序中使用相同的产品。我认为您的下一步是确定瓶颈。如果您确定它位于数据库层,我建议您进行分析器跟踪并缩短最昂贵查询的执行时间。

这是我用于从 SQL Server 动态管理视图 (DMV) 和相关动态管理功能 (DMF) 收集统计信息的另一个链接。不确定我们是否可以在 Express 版中使用。 发现隐藏数据以优化应用程序性能


您是否将 SQL Server Express 用于 Web 应用程序?据我所知,它对生产部署有一些限制。

SQL Server Express是免费的,可以由 ISV 重新分发(根据协议)。SQL Server Express 是 学习和构建桌面和小型服务器应用程序的理想选择。此版本是独立软件供应商、非专业开发人员和构建客户端应用程序的爱好者的最佳选择。如果您需要更高级的数据库功能,SQL Server Express 可以无缝升级到更复杂的 SQL Server 版本。

于 2008-09-12T14:14:31.123 回答
0

我会检查虚拟服务器上的磁盘性能。如果这是问题之一,我建议将数据库放在单独的主轴上。

更新:按照 Gulzar 的恰当建议,移动到单独的主轴或升级 SQL Server 版本。

于 2008-09-17T14:48:52.577 回答
0

确保在检索数据后关闭连接。

于 2008-09-17T14:54:34.590 回答
0

运行 SQL Profiler 以查看发送到数据库的查询。查找以下查询:

  • 返回太多数据
  • 构造不良
  • 被执行太多次
于 2008-09-25T23:00:14.517 回答