我正在尝试使用 Sql Server Profiler 针对在 Visual Studio 开发服务器中运行的 Asp.NET 网站应用程序运行跟踪。
但是,每当跟踪运行时,来自 Web 应用程序的所有 db 请求都会失败,并给出错误消息:
“超时已过。在操作完成之前超时时间已过或服务器没有响应。”
如果我停止跟踪,Web 应用程序将再次运行。
对此的任何意见表示赞赏。
我正在尝试使用 Sql Server Profiler 针对在 Visual Studio 开发服务器中运行的 Asp.NET 网站应用程序运行跟踪。
但是,每当跟踪运行时,来自 Web 应用程序的所有 db 请求都会失败,并给出错误消息:
“超时已过。在操作完成之前超时时间已过或服务器没有响应。”
如果我停止跟踪,Web 应用程序将再次运行。
对此的任何意见表示赞赏。
您只需要在调试时增加 sql 连接上的 CommandTimeout 以及应用程序池超时值。
一旦你解决了分析器超时问题,你应该考虑调整你的数据库(如果你还没有,尽管听起来不像)。
我最近遇到了类似的问题,结果是由于某些查询/语句的高读取而导致 IO 阻塞。让分析器在已经很慢的数据库上运行是很困难的。我们不得不在更安静的时间以 10 分钟的时间段运行分析器,尽管这无助于确定最重负载的最大问题。
一旦我们让分析器捕获数据(在 sql server 2005 上)并实施数据库优化顾问 (DTA) 推荐的索引和统计信息,数据库就会再次以预期的性能水平运行。
我建议你阅读这本关于 sql server profiler 的免费电子书。...
http://www.red-gate.com/products/SQL_Response/offers/mastering_sql_profiler_ebook.htm
它详细介绍了如何运行轻量级跟踪,这将帮助 DTA 推荐索引和统计信息,从而提高数据库的性能,并识别可能位于代码中的一些运行缓慢的查询。
您正在运行的跟踪可能会使您的数据库超出边缘,因此在 10-20 分钟的部分中运行它可能更可行。
如果您有 IO 阻塞问题,这通常会影响整个 sql 服务器,并且管理工作室有时会看起来没有响应。
您是否有可能意外陷入单用户模式?
试试这个:
ALTER DATABASE [数据库名称] SET MULTI_USER;