オプション2と3では、更新時にサーバーに送信されるデータが増えるため、データだけで通信オーバヘッドが大きくなります。
各行には異なる更新された列のセットがありますか、または特定の実行で同じ列の列が更新されていますか(実行時に変更される可能性があります)
後者の場合(特定の実行で同じ列の列が更新されます)、オプション1のほうがパフォーマンスが向上します。ステートメントは一度作成され、何度も使用され、更新ごとにサーバーに最小限のデータが転送されます。
前者のケースでは、変更された列のサブセットが比較的小さいかどうかを調べることにします(たとえば、10行は異なる行で変更されます。 10)。その場合、おそらく単一の準備されたステートメントの便宜のために変更されていない7〜9列の値を送信する比較的小さなオーバーヘッドを受け入れて、10個の列に対してパラメータ化することになります。更新された列のセットがマップ全体にある場合(100個の列のうち50個以上が操作全体にわたって更新されているとします)、ロット全体を処理するだけで簡単です。
ホスト言語(クライアントAPI)が更新をパラメータ化するさまざまな方法をどれほど簡単に処理できるかによって、ある程度までは異なります。
100以上の列を持つテーブルにはどのような種類のデータを保存しますか? –
実際に私は列の数を数えませんでしたが、多くの列があります。データモデルは問題ありません。テーブルが表すエンティティには多くのプロパティがあります。 –