我的asp.net应用程序遇到了性能问题。有时客户端执行命令需要30-40秒,而有时需要3-4秒。我尝试过SQL Profiler,但没有发现任何问题。在客户尝试的相同场景下,我无法在我这一方复制问题。
我认为这可能与我正在使用的会话变量有关。我使用它们中的很多来在页面中传递信息。但是,我不会清除它们。
如果我清除它们会有帮助吗?如果是这样,这会影响到其他用户吗?或者它只对该用户是明确的?
任何帮助都是非常感谢的。
发布于 2010-09-27 10:19:06
在基于SQL Server的会话存储的.NET 2.0实现中,其中一个存储过程中存在记录锁定问题。看起来微软在.NET 4.0版本中包含了这个修复。
看看这里:http://sanjevsharma.blogspot.com/2008/03/improving-aspnet-session-state-database.html
我有99%的把握,你可以运行4.0版本的aspnet_regsql -ssadd,同时仍然可以运行ASP.NET 2.0。我记得我做了一个2.0和4.0 SQL脚本的比较,上面的修复是唯一真正的区别。微软对修复的实现比上面的链接要好一些(显然是基于上面的链接)。
发布于 2010-09-26 23:15:06
Session等会话变量是特定于用户的,因此清除它们不会影响其他用户。
保持会话轻量级肯定有助于提高性能。
发布于 2010-10-01 13:24:12
如果问题似乎不在你的数据库上,你可以尝试分析你的web应用程序,看看瓶颈在哪里。很难重现你在生产中看到的变量问题(4-40秒的延迟),但是发生了多少个方法调用和哪个方法调用消耗了最多的执行时间的结果可能会提供一些提示。
其中一些在What Are Some Good .NET Profilers?中提到
就我个人而言,我是EQATEC分析器的铁杆粉丝。
https://stackoverflow.com/questions/3798367
复制相似问题