sql - 有没有类似并行光标的东西?

标签 sql sql-server tsql sql-server-2008

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

OPEN CURSOR_T

FETCH NEXT FROM ...

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

      ... Block Inserts results into a table

      ... Block terminates
END

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

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

最佳答案

这通常是通过队列实现的:您选择“待办事项”项目并将它们放入队列中,同时队列读取器(处理线程)将“待办事项”项目出队并通过以下方式处理它们:一。 using tables as queues里有一门艺术,处理通常与 activation 相关联。并且入队/出队周期实际上是连续的。

关于sql - 有没有类似并行光标的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7693474/

相关文章:

c# - 使用参数而不是串联的好处

mysql - 查询总和(总计)

c# - 使用 SqlDataReader 从联接表中获取值

xml - 在 SQL Server 中解析 XML 的问题

sql - 如何制作一个以用户定义的表类型为参数并在sql中返回相同的函数?

MYSQL 调用存储过程时出错

C# 将数据插入 SQL 数据库的最快方法

sql - 在 SQL 中将多行合并为具有单独列的单行

sql - 折叠并汇总分组内的计数

tsql - t-sql 按类别分组并获取前 n 个值