我有一个SSIS包,它使用ADO NET Source组件从数据库中选择多个行并将这些记录插入另一个表中。
此组件的默认命令超时为30秒,但查询的运行时间远远超过此30秒。运行一些测试似乎这个超时期限只是返回第一行。如果它设法做到这一点,那么如果需要,查询可以运行1000秒。
如果在前30秒内未能返回一行,则组件的预执行部分将失败。我读到的是开始执行查询和返回第一行之间的时间。
这似乎与谷歌关于这个属性的任何内容都有冲突。他们似乎说命令超时期是完全执行查询。这不是我所看到的。
任何人都可以澄清这个命令超时期限实际是什么吗?
修改 链接到我正在查询的SSIS组件和属性(CommandTimeout)的屏幕截图。
我的问题不是将查询时间缩短到30秒超时时间,而是为什么执行时间超过30秒的时间不会超时。
这个软件包的第1000次运行是在服务器之间移动17GB数据的运行之一,这不是包的正常运行但是我只是用它来表明这个软件包明显超过这个30秒命令超时。
答案 0 :(得分:0)
客户端用于确定查询是否没有响应的客户端设置。然后,客户端将尝试向服务器发送命令以取消查询。
您是正确的,可用的信息有点模糊,甚至是MSDN上的信息。根据我的个人观察,我同意你的发现,即如果客户端在超时之前开始从服务器接收数据,那么它可以运行所需的时间。
我这样想。当第一行数据准备好返回时,查询本身就完成了,只剩下数据移动了。因此,根据定义,查询没有超时。