在vb.net中执行大型SQL查询的正确方法

时间:2012-10-23 20:07:56

标签: sql-server vb.net sql-server-2008

我有一个SQL查询,我使用我的vb.net应用程序来运行它,但是当它超过其命令超时属性时我遇到了问题。我把它设置为300,任何提示或建议?

这是我在vb.net中的代码片段

  .ExecuteQuery("exec spCentrIX_PracticeSet '" & oCompany & "','" & .SecDatabaseName & "'", sDataSet)
  Application.DoEvents()
  .ExecuteQuery("exec spCentrIX_PracticeSet '" & oCompany & "','" & .SetDatabaseName & "'", sDataSet)
  Application.DoEvents()
  .ExecuteQuery("exec spCentrIX_PracticeSet '" & oCompany & "','" & .TranDatabaseName & "'", sDataSet)
  Application.DoEvents()

运行三次的相同脚本。这个脚本从3个运行okie的数据库中获取所有数据。但是,当它正在运行时...它超过了我的代码的连接超时。

1 个答案:

答案 0 :(得分:1)

将超时设置为零永远不会超时,在生产环境中不建议这样做,但如果你真的想等到它完成它就会有效。如果可能,您可能想要研究优化查询的方法。也可以异步运行它,也许使用backgroundworker。

http://www.codeproject.com/Articles/20627/BackgroundWorker-Threads-and-Supporting-Cancel