【发布时间】:2016-03-02 15:05:36
【问题描述】:
我有一个 for each 循环,可以从带有查询的表中提取查询。 然后循环执行每个查询并将结果写入表。 这就像一个魅力。我什至实现了查询无法执行时的错误处理(例如,如果它确实有语法错误)。
但有时执行一个查询会花费很长时间,例如一个没有适当困境的交叉连接查询。
现在我希望能够设置查询执行的最大持续时间。这样查询将在 x 分钟后停止(如果那时还没有完成)。 然后循环应该继续下一个查询。 换句话说,一次迭代的时间永远不会超过 X 分钟,之后它应该继续下一次迭代。
有什么想法、建议吗?
【问题讨论】:
-
请提供
sqlplan格式的查询和执行计划... -
SQL顺序执行查询,不能并行执行,你可能需要去c#并行执行查询,我相信ssis也有能力并行执行子容器
-
@devart 目前有 462 个查询。可以添加和删除查询。所以我需要为技术上合理但将永远运行的查询计划。我认为 sqlplan 不会有帮助,因为所有这些查询只有一个共同点:SELECT。 FROM、WHERE 和其他组件都可以不同。
-
@TheGameiswar 我不明白你的建议:我希望它们按顺序运行,因为它们都插入到同一个表中,但我想在指定的时间后停止循环并继续下一个循环。并行执行与此有什么关系?
标签: sql-server ssis sql-server-2012 ssis-2012