我们有一个非常大的三层 .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 来挂钩事件并使用秒表,但似乎没有一条干净的路径。(我会选择一种合理准确到百分之几的方法......)
非常感谢任何想法/建议,谢谢。