【发布时间】:2013-03-12 10:29:38
【问题描述】:
我们有一个非常大的三层 .NET 4.0 Web 应用程序(ASP.NET、WCF、SQL Server 2008 R2),我正在尝试诊断一些性能问题。 ASP.NET 层使用 SQL 会话状态提供程序,并且相当广泛地使用会话状态。
<sessionState mode="SQLServer" sqlConnectionString="..." cookieless="false" timeout="20"/>
我试图弄清楚将会话加载和保存到数据库需要多少时间。请注意,这与使用 SQL 分析器或其他数据库方法来测量该层上的时间不同;我想测量 从 ASP.NET 层花费的总时间。即这将包括会话对象序列化/反序列化、连线时间和 SQL 保存/加载时间。
我是一位经验丰富的开发人员(自 80 年代初以来),我已经在网上搜索了 几个小时 - 有大量文章对比会话状态方法和一般性能概念等,但我找不到有关如何实际测量 SQL 会话状态提供程序的总时间的信息。我最初考虑使用 HttpModule 来挂钩事件并使用秒表,但似乎没有一条干净的路径。 (我会选择一种合理精确到百分之几的方法......)
非常感谢任何想法/建议,谢谢。
【问题讨论】:
-
您是否尝试使用
Trace添加一些诊断代码,然后打开跟踪?这样您就可以非常彻底地诊断所选页面。 -
你会在哪里添加 Trace 语句?
-
在你的代码中,尽可能多的,这样你就可以分析命中跟踪的确切时间。
标签: asp.net sql-server performance session-state