2

これはどこかで答えられているように感じますが、私はそれを正しく照会していないだけなので、事前に謝罪します.

サービスから何百ものオブジェクトを取得し、コード ファースト アプローチを使用してそれらをデータベースにマップするメソッドを取得しました。現在、すべてのオブジェクトを 1 つずつコンテキストに追加し、最後に 1 回保存しています。わずか 100 の場合、入力に約 22 秒かかります。それで、本当に、今私は2つの質問があると思います...

  1. コンテキストが更新され、誰かがそのデータ (つまり、それらのテーブルからコンテンツを入力するページ) にアクセスしようとした場合、アクセスできないでしょうか? それとも、読み取り専用の方法でデータを取得するだけですか? 競合する更新について心配する必要はなく、読み取り確率のみを心配する必要があるため、後者を想定しますが、確認したかったのです。

  2. すべてを一度に入力して保存するのと、各オブジェクトが追加された後に保存するのとではどちらがよいでしょうか?

ありがとうございました。

4

2 に答える 2

0

コンシューマがデータを取得する方法は、データベースへのアクセスに使用するロック メカニズムによって異なります。すべてのオブジェクトが更新されるまで待機するデフォルトを選択するか、読み取り専用の方法で何かを取得することを選択できます。

すべてを一度に更新するか、少しずつ更新するかの決定は、ロックを保持する時間と、新しい接続を開始するために浪費したい時間との間のトレードオフによって決まります。私の推測では、22 秒の DB 書き込み時間は長すぎるため、そのワークロードを分割することをお勧めします。

ただし、一方で、100 個のオブジェクトに対して 22 秒は長い時間のように聞こえるため、速度が低下するパフォーマンス上の問題が発生する可能性があります。

于 2013-07-24T16:04:14.307 に答える