我正在测试.NET Web应用程序。我之所以这样做有两个原因:我希望看到在现实世界条件下表现如何,并确保我们在测试过程中没有遗漏任何问题。我们在应用程序中使用了30个并发用户,就像他们在正常工作期间一样。大多数用户打开了多个应用程序窗口。
它已加载到生产服务器上。它是一个具有2.66G Hz Xeon处理器和2 GB RAM的虚拟服务器。我们正在使用Win2K3 SP2。我们已经加载了.NET 1.1和2.0,并且正在使用SQLExpress SP1。
我们重新检查了所有表格后面的索引,它们都是应有的。
我们如何改善应用程序的性能?
答案 0 :(得分:2)
您可能遇到并发问题,具体取决于应用程序的运行方式。尝试使用“nolock”关键字执行读取操作。
尝试为列添加表别名(并避免使用SELECT *),这有助于MSSQL,因为它不必“猜测”列来自哪个表。
如果您还没有,请转到SPROC,这样可以让MSSQL为给定查询的正常结果集更好地索引数据。
请尝试遵循SPROCS的执行计划,以确保他们使用您认为的索引。
对数据库运行跟踪以查看传入请求的外观。您可能会注意到特定的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事件探查器以查看发送到数据库的查询。查找以下查询: