【发布时间】:2010-11-22 08:44:37
【问题描述】:
我们有 MSSQL、一些 C# Web 服务、一些 ASP.NET 和一些 AJAX。我们的加载时间很糟糕,刷新页面通常需要 2-3 秒,有时甚至更长。我不知道从哪里开始。
有哪些分析工具可以跨整个端到端来确定最大的瓶颈在哪里?
【问题讨论】:
标签: asp.net sql-server performance optimization
我们有 MSSQL、一些 C# Web 服务、一些 ASP.NET 和一些 AJAX。我们的加载时间很糟糕,刷新页面通常需要 2-3 秒,有时甚至更长。我不知道从哪里开始。
有哪些分析工具可以跨整个端到端来确定最大的瓶颈在哪里?
【问题讨论】:
标签: asp.net sql-server performance optimization
您最好的选择...正如我之前说过一百万次...是Red Gate 工具集。
ANTS Performance Profiler 是适合您的工具。
对于 SQL Profiling,您始终可以使用 SQL Server 附带的内置 Profiler。
【讨论】:
如果您只需要这样做一次,或者您没有足够的钱购买您可能找到的任何分析器,您总是可以求助于跟踪。
在从 Web 服务或数据库调用中提取结果的 C# 代码中,使用代码包装调用以检测调用所需的时间。将其写入某个日志文件、调试输出或直接写入结果页面。对其他看起来可疑的情况执行类似的操作。
【讨论】:
系统是否仅在一种环境中表现不佳,即数据集比您开发的数据集更大?在过去,这对我们来说一直是个问题,b/c 人们会针对少量数据编写错误的查询,但在我们投入生产之前永远不会注意到。
如果没有,那么我相信人们会推荐很多好的工具,例如 SQL Profiler、Visual Studio 的 Profiler,或者只是在您的 ASP .Net 页面上使用 Trace=true。对于 AJAX,我发现像 Firebug 这样的 JavaScript 调试器对于查看幕后发生的事情很有用。
【讨论】:
Jetbrains 有一个名为 dotTrace 的产品,它可以监控性能和内存。
【讨论】:
可能最好的第一步是确定是数据库花费时间还是前端。
Red Gate 工具也很有用,但如果您不确定他们要修复什么,您可能希望从更基本的级别开始。如果是数据库,那么 SQL Server profiler 就是你的朋友。那里有一些基本的痕迹,特别注意持续时间和读数,将为您指明正确的方向,或者至少可以帮助您识别问题区域。
在 Web 端,跟踪标志可能特别有用。
祝你好运! 丹
【讨论】:
Google Page Speed - 一个Firebug 插件 - 也可以作为跟踪加载 ASPX 页面时消耗您的时间的选项。
顺便说一句,通常巨大的 ViewState 也可能是 Aspx 页面上的一个问题。
【讨论】:
更多关于 @Juri 所说的内容,还可以获取 Firebug 的 YSlow 插件。
我首先要做的几件事来提高速度:
另外,您是否尝试过仅使用 Trace="true"。
【讨论】: