私は次の声明を持っています:
UPDATE Table SET Column=Value WHERE TableID IN ({0})
非常に長くなる可能性がある TableID のカンマ区切りのリストがあります ({0} を置き換えるため)。これは SqlDataAdapter を使用するよりも高速であることがわかりましたが、コマンド テキストが長すぎると SqlCommand のパフォーマンスが低下する可能性があることにも気付きました。
何か案は?
これは、CLR トリガーの内部にあります。SqlCommand を実行するたびに、何らかのオーバーヘッドが発生します。私は、上記のコマンドが SqlDataAdapter.Update() よりも優れていると判断しました。なぜなら、Update() は、複数の SQL ステートメントを実行して個々のレコードを更新するからです。
...私は次のことをしました(トリガー時間が0.7秒から0.25秒になりました)
UPDATE T SET Column=Value FROM Table T INNER JOIN INSERTED AS I ON (I.TableID=T.TableID)