我们正在解决这个问题:
- 我们在
SQL Server 2008 R2
(R2 !)中有一个大表(数百万行) - 我们需要遍历这个表,每一行都需要通过
C#
代码重新计算(所以表是从C#
应用程序加载的)
如果性能至关重要,如何做到这一点?某种批处理?
我们正在解决这个问题:
SQL Server 2008 R2
(R2 !)中有一个大表(数百万行)C#
代码重新计算(所以表是从C#
应用程序加载的)如果性能至关重要,如何做到这一点?某种批处理?
如果性能至关重要,请使用 SQL CLR 计算新值。您可以这样使用更新语句。SQL CLR 对您可以使用的代码设置了限制,因此这可能不是一个简单的选择。
如果 SQL CLR 不是一个选项,还有另一种方法:
我假设有一个整数主键。我会这样做:
诀窍是跟踪您已经处理了哪些行。保留处理的最后一行的 ID 值。请求这样的批次:
select top 10000 *
from T
where ID > @lastIDProcessed
order by ID
这将保证快速可靠的执行。