【问题标题】:SQl Server I need to fix the error of "Timeout expired. The timeout period elapsed"SQl Server 我需要修复“Timeout expired. The timeout period elapsed”的错误
【发布时间】:2012-01-16 19:12:55
【问题描述】:

我知道它被问了很多次,但我似乎无法获得我已阅读的修复程序来解决我的问题。我收到 SQL Server 错误“操作完成之前超时时间已过或服务器没有响应”。根据this 发布,我将工具>选项>设计器>“覆盖连接字符串超时值”下的设置更改为 120 秒,但是......它在 30 秒后仍然超时。我正在从 Visual Studio 访问数据库,直接使用它,而不是在客户端代码中使用 ado。我愿意接受建议......这是查询顺便说一句:

SELECT Symbol FROM tblSymbolsMain WHERE ((SELECT dbo.LatestDateInDailyPricingVolBySymbol(tblSymbolsMain.Symbol) AS Expr1) < dbo.RecentTradingDateByNumber(5))

简而言之,目标是返回主符号表中在定价表中至少 5 个交易日内没有每日定价数据点的所有股票代码。

一如既往地提前感谢..

【问题讨论】:

  • 当您直接从数据库工具(例如 Management Studio)调用该查询时,它是否运行得很快?
  • 在 Management Studio 中运行查询时会发生什么?完成查询经过了多长时间?
  • @DOK,HardCode 我现在正在运行它,我们在 5 分钟时仍在运行.. 看起来我需要更好的逻辑?
  • 在哪里?这就是问题所在。

标签: sql-server sql-server-2008 tsql


【解决方案1】:

代码似乎不正确......你有...WHERE (SELECT...) 在哪里?

你确定你不是在追求

SELECT MyCols FROM MyTable WHERE ID IN (...)

SELECT MyCols FROM MyTable WHERE ID NOT IN (...)

(...) 代表另一个返回某种 ID 的选择。

否则你当然会超时。该选择可能会返回一个计数,WHERE 1 可以继续下去...

【讨论】:

  • 当我阅读你的帖子并在我的第一次通过时我同意了,但是 WHERE 子句应该返回一个布尔值,用于评估的每一行。该函数比较比较两个日期。我觉得没问题...
  • StatsViaCsh - 很好,如果它涉及布尔值,您的查询仍然不正确,您必须说:SELECT blah FROM MyTable WHERE myCol &lt; (SELECT...) 这就是您所缺少的,目前您没有比较任何东西。
  • Gotcha.. 所以我确实需要“选择”进行比较。你是对的,它现在正在运行,但形式有所改变,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
相关资源
最近更新 更多