如何并行运行sql server存储过程?

cin*_*ndi 8 sql t-sql sql-server parallel-processing dts

我想做的事情如下:

exec sproc1 and sproc2 at the same time
when they are both finished exec sproc3
Run Code Online (Sandbox Code Playgroud)

我可以用dts做到这一点.有没有办法在transact sql中做到这一点?或者有没有办法使用批处理脚本(例如vbs或powershell)?

Tim*_*uri 5

您可以创建一个CLR存储过程(使用C#)将在它们自己的线程上调用前两个,然后阻塞直到两个完成...然后运行第三个.

你能在你的情况下使用CLR sprocs吗?如果是这样,我将编辑此答案以获得更多详细信息.


Gro*_*ing 4

sp_开始_作业

我目前正在做类似的事情,我发现避免使用 SSIS 或某些外部 shell 的唯一方法是将我的加载例程手动拆分为“线程”,然后触发一个主 sqlagent 作业,该作业又执行与我有线程一样多的 sp _ start _ job 。从那时起,它们都自主运行。

这不完全是我们想要的,但结果是一样的。如果您测试子作业的作业状态,您也可以实现存储过程 3 的条件启动。

如果我们不能同时使用 8 个核心,那么它们还有什么意义呢?