問題タブ [updatebatchsize]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1560 参照

.net - UpdateBatchSize を設定する際の注意事項

多くの行 (10,000 以上) を持つ 2 つのデータ テーブルをマージする .NET アプリケーションがあります。DataAdapter.Update コマンドを使用すると、SQL テーブルに対して多数の更新/挿入を実行する可能性が高くなります。

現在、Adapter UpdateBatchSize プロパティを 200 に設定しています。VS は、この値を高く設定しすぎるとパフォーマンスが低下する可能性があるため警告します。わかりました。

パフォーマンスに関して、このプロパティを設定するときに何を探す必要がありますか? 何はともあれ、大量の行を更新するにはかなりの時間がかかります。私のマシン(またはDBサーバー)で実行するのにそれほど時間はかからないようですが、システムが他のアイテムを実行してロードされている場合、これは問題になる可能性があります。

プロファイラーで検索できるものはありますか? 標準的なプロファイリングを行うと、期間は通常 0 です。1 回または 2 回ヒットすることもあり (おそらく全体で 20 回)、約 20,000 回の更新のうち、3 ~ 4 回が 20 回ヒットします。CPU は、1 ~ 2 回ヒットしたカップルを除いて 0 です。 . 約 10 になる 2 つのレコードがあります。読み取りは常に 2 で、書き込みは常に 0 です。

0 投票する
3 に答える
5401 参照

performance - DataAdapter.UpdateBatchSize を「最適な」値に設定するにはどうすればよいですか?

ようやく挿入バッチが機能するようになり、バッチのサイズをいじっていますが、50 の値と 10000 の値の間にパフォーマンスの違いは見られません。これは非常に奇妙に思えます。裏で何が起きているか分からないので、それが正常な動作なのかもしれません。

テーブルに 16 万行を挿入していますが、テストした値の平均時間は 115 +/- 2 秒です。バッチ処理なしで 210 秒かかるので、この改善には非常に満足しています。ターゲット テーブルは次のとおりです。

UpdateBatchSize を設定するときに何を探すべきかを読みましたが、答えはいくつかの異なる値を単純にテストすることでした。それは理解できますが、テーブルの設計、SQL の質問、および挿入しようとしているデータを知っていれば、適切な値を計算するか、少なくとも推測することは可能ではないでしょうか?

誰かが推奨できるベストプラクティスはありますか?

0 投票する
1 に答える
790 参照

sqldataadapter - SqlDataAdapter UpdateBatchSize 行エラー

DataAdapter には、エラーが発生した場合でも DataAdapter.Update コマンドの処理を続行する「True」に設定できる ContinueUpdateOnError プロパティがあります。これは理想的であるため、挿入に失敗したデータの各行でエラーをキャッチできます。ただし、これは、バッチ処理がオフになっている場合 (DataAdapter.UpdateBatchSize = 1) にのみ正しく機能します。

DataAdapter.UpdateBatchSize が 0 またはバッチ処理をオンにする別の数値に設定され、バッチのレコード内でエラーが発生した場合、バッチ全体が更新に失敗します。明らかに、これは私が望んでいることではありません。

理想的には、2 つのシナリオを組み合わせて使用​​したいと考えています。バッチ処理を使用できるようにして、行の挿入時にデータベースへのラウンドトリップを減らしたいと考えていますが、同時に、発生した個々の行エラーをキャッチできるようにしたいと考えています (バッチがオンになっていて、ContinueUpdateOnError が「True」に設定されていると、何らかの理由で機能しません)。私には、それは何らかの方法で行わなければならないように見えます。挿入ごとにデータベースにトリップして各行を個別に挿入し、各行のエラーをキャッチするか、バッチをサーバーに送信しようとし、バッチで行が失敗した場合、バッチ全体が失敗します。

何かご意見は?

0 投票する
1 に答える
13086 参照

hibernate - hibernate.jdbc.batch_sizeを指定する意味は何ですか?

このHibernate構成は、表面上、第1レベルのキャッシュにキャッシュされるオブジェクトの数を制御する必要があります。その理由は簡単に理解できます。メモリが不足したくないのです。

しかし、何かが私を混乱させています。このWebサイトを含め、私が見たすべての実装に は、明示的なフラッシュとクリアがあります。問題ありませんが、構成プロパティのポイントは何ですか?

注:ここでは、Hibernateがキャッシュのサイズを監視し、特定のタイプのオブジェクトの数がキャッシュサイズよりも大きくなった場合に、キャッシュをデータベースと同期すると想定しています。その仮定が間違っているかどうかわからない???

0 投票する
3 に答える
5018 参照

c# - nhibernate を使用する場合、マッピング コードで最適なバッチ サイズを特定するにはどうすればよいですか?

私は nhibernate を使用しており、マッピング領域に次のようなコードがあります。

私の質問は、 .BatchSize に入れるのに最適な値をどのように把握するのですか? 私は単に高い数字を入れるべきですか?数値を高くしすぎるとマイナス面はありますか?

0 投票する
1 に答える
336 参照

ado.net - バッチ更新で失敗した行更新を追跡する方法

try catchブロックを使用してADO.NET2.0を使用してバッチ更新を実行しています。UpdateBatchSizeは500に設定されています。例外をキャッチできることがよくありますが、どの行の更新が失敗したかわかりません。取得する方法はありますか。実際に失敗した行?