SqlServer Express性能低下

时间:2008-09-12 14:05:36

标签: asp.net performance subsonic sql-server-express

我正在测试.NET Web应用程序。我之所以这样做有两个原因:我希望看到在现实世界条件下表现如何,并确保我们在测试过程中没有遗漏任何问题。我们在应用程序中使用了30个并发用户,就像他们在正常工作期间一样。大多数用户打开了多个应用程序窗口。

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

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

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

我们如何改善应用程序的性能?

6 个答案:

答案 0 :(得分:2)

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

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

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

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

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

答案 1 :(得分:2)

这只是我想到的,但是当你有20多个用户时,请检查SQL Server正在使用多少内存 - Express版本的一个限制是limited to 1GB of RAM。因此,由于Express的限制,可能只是因为没有足够的内存可供服务器使用。

答案 2 :(得分:0)

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

这是我用于从SQL Server动态管理视图(DMV)和相关动态管理功能(DMF)收集统计信息的另一个链接。不确定我们是否可以在Express版本中使用。 Uncover Hidden Data to Optimize Application Performance


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

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

答案 3 :(得分:0)

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

更新:转移到单独的主轴或升级SQL Server版本,正如Gulzar恰当地建议的那样。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

运行SQL事件探查器以查看发送到数据库的查询。查找以下查询:

  • 返回太多数据
  • 构造不佳
  • 执行次数太多