有没有像Parallel CURSOR这样的东西?

Leg*_*end 7 sql t-sql sql-server sql-server-2008

我正在使用 CURSOR 进行一些逐行操作。

OPEN CURSOR_T

FETCH NEXT FROM ...

WHILE @@FETCH_STATUS = 0
BEGIN
      ... Block begins

      ... Block Inserts results into a table

      ... Block terminates
END
Run Code Online (Sandbox Code Playgroud)

我想知道为什么这不能并行执行,因为行操作是完全隔离的,并且只将一些行插入到另一个表中,并且每一行都分配了自己的 ID,因此没有明显的冲突可能性。

我想知道是否有办法在纯 SQL 中并行化它?

Rem*_*anu 3

这通常是通过队列实现的:您选择“待办事项”项目并将它们放入队列中,同时队列读取器(处理线程)将“待办事项”项目出队并一一处理它们。使用表作为队列是一门艺术,处理通常与激活相关,并且入队/出队周期实际上是连续的。