首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何对SQL查询失败进行故障排除?

如何对SQL查询失败进行故障排除?
EN

Stack Overflow用户
提问于 2010-09-17 05:36:05
回答 5查看 10.5K关注 0票数 3

我有一个SQL查询,它有时会失败。这意味着该查询在大多数情况下运行良好。一旦查询失败,如果我再次执行是与一些延迟,它是成功的在相同的执行。

请注意,查询中使用的表在成功方案和失败方案之间没有任何更改。它们完全一样。如下所述,查询连接了两个表,查询结果应该是空的。但有时ADO会抛出错误。

如何找出问题的根本原因?

我故意遗漏了一些细节,因为我对了解SQL查询失败的一般问题解决方法很感兴趣。

以下是一些细节,以了解任何具体的替代方法以及。

  • 2008
  • 查询使用连接两个表
  • 查询通过互操作从.NET传递,COM组件处理ADO以执行查询。
  • 错误信息0x80004005(-2147467259) DBNETLIBSQL不存在或访问被拒绝。

更新:

对于这个特定的问题,我认为客户端耗尽了可用的TCP端口。根据默认设置,5000端口是TCP端口的最大数目。在我的示例中,ADO创建隐式连接,在每次查询时创建TCP端口。

netstat告诉我,当我运行工作流时,打开的端口数量急剧增加。在大约4000个端口上,查询失败(0-1023是保留端口)。来自这里的Jibcov的回答为我指明了正确的方向。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-17 13:16:58

SQL查询失败的“通用问题解决方法”与任何其他代码故障相同:

  • 识别在做什么。
  • 确定应该做什么。
  • 识别为什么是不同的。
  • 把它修好。

编辑:下面提供了更具体的信息,下面是微软知识库的文章:http://support.microsoft.com/kb/328306讨论了可能的原因和解决这个问题的方法。

票数 2
EN

Stack Overflow用户

发布于 2010-09-17 05:48:39

阅读错误信息!

由于以下几个原因,查询只会“失败”:

  • 唯一、检查或其他违反约束的行为
  • 数据类型问题(不匹配、溢出)
  • ???

不正确或矛盾的聚合或语法将在解析时得到。但是..。

  • 使用动态SQL,它可能“失败”,因为它在语法上是错误的。

这可能是缓慢或提供错误的数据,但这并不是“失败”本身。

编辑:

这不是查询错误:它是与任何SQL命令无关的连接错误。

通常,您现在需要确定它是与一个客户端相关还是一个普遍的问题

票数 3
EN

Stack Overflow用户

发布于 2012-01-24 01:29:33

‘潜在原因’KB文章省略了为我解决这个问题的那篇文章--“在应用程序处于高度紧张的情况下,您不能通过使用用于Server的OLE DB提供程序访问Server数据库”http://support.microsoft.com/kb/907264

在这种情况下-进程运行一段时间,检索数据确定,然后失败与错误。

运行'netstat -an‘将显示进程运行时打开的所有ips/端口。对我来说,这些都在20岁左右,直到达到某个代码块.然后迅速上升到4000+,应用程序就失败了

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3732868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档