私たちはこの問題と戦っています:
SQL Server 2008 R2
(R2 !)に大きなテーブルがあります (数百万行)- このテーブルをウォークスルーする必要があり、コードによって各行を再計算する必要があり
C#
ます (そのため、アプリケーションからテーブルがロードされC#
ます) 。
パフォーマンスが重要な場合、それを行う方法は? ある種のバッチ処理?
私たちはこの問題と戦っています:
SQL Server 2008 R2
(R2 !)に大きなテーブルがあります (数百万行)C#
ます (そのため、アプリケーションからテーブルがロードされC#
ます) 。パフォーマンスが重要な場合、それを行う方法は? ある種のバッチ処理?
パフォーマンスが重要な場合は、SQL CLR を使用して新しい値を計算します。そのように update ステートメントを使用できます。SQL CLR では使用できるコードが制限されるため、これは簡単なオプションではない可能性があります。
SQL CLR がオプションでない場合は、別の方法があります。
整数の主キーがあると仮定します。私は次のようにします:
秘訣は、すでに処理した行を追跡することです。最後に処理された行の ID 値を保持します。次のようなバッチをリクエストします。
select top 10000 *
from T
where ID > @lastIDProcessed
order by ID
これにより、信頼性の高い実行が高速に保証されます。