0

単純な C# アプリケーションで ADO.NET を使用しています。

TableA と TableB の 2 つのテーブルがあります。TableA は Table B の親です。TableA には以下が含まれます。

  1. 主キーとしての id (Int32)
  2. その他の列。関係ないと思うので詳しくは書きません。

表 B には次の列があります。

  1. id (主キー) (Int32)
  2. tableAid (テーブル A との外部キー関係) (Int32 と主キー)
  3. X(ダブルタイプ)
  4. Y(ダブルタイプ)

テーブル B に約 300 行を作成しました。X と Y の列の値を更新して、各行の値が同じになるようにしたいと考えています。私は現在これをやっています:

TableBRow[] rowsOfB = TableA.GetTableBRows();

for (int i = 0 ; i < rowsOfB.Length ; i++) 
{
    rowsOfB[i].X = newXvalue; 
    rowsOfB[i].Y = newYvalue; 
}

このコードの実行には時間がかかるようです。私の質問は(i)なぜこれが遅いのですか?(ii) テーブル内の多くの行を更新するための推奨される方法は何ですか? 一括更新アプローチはありますか。

4

1 に答える 1

0

大規模な更新を行う場合、通常は一時テーブルを作成し、一括挿入を行い、この一時テーブルに結合して更新を行う方が、n回の更新を行うよりも高速です。

于 2010-11-03T11:50:18.573 に答える