3

我正在尝试使用 Sql Server Profiler 针对在 Visual Studio 开发服务器中运行的 Asp.NET 网站应用程序运行跟踪。

但是,每当跟踪运行时,来自 Web 应用程序的所有 db 请求都会失败,并给出错误消息:

“超时已过。在操作完成之前超时时间已过或服务器没有响应。”

如果我停止跟踪,Web 应用程序将再次运行。

对此的任何意见表示赞赏。

4

3 回答 3

1

您只需要在调试时增加 sql 连接上的 CommandTimeout 以及应用程序池超时值。

于 2010-07-19T16:32:21.630 回答
0

一旦你解决了分析器超时问题,你应该考虑调整你的数据库(如果你还没有,尽管听起来不像)。

我最近遇到了类似的问题,结果是由于某些查询/语句的高读取而导致 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 服务器,并且管理工作室有时会看起来没有响应。

于 2010-07-13T09:49:05.733 回答
0

您是否有可能意外陷入单用户模式?

试试这个:

ALTER DATABASE [数据库名称] SET MULTI_USER;

于 2010-07-21T22:23:42.393 回答