問題タブ [batch-updates]

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 に答える
1837 参照

java - JDBC での executeBatch() の失敗を特定する

次のコードを使用して、データをテーブルに挿入しています。

上記のすべての行のみが正常に挿入される他の処理方法....

を使用してテーブルに挿入するとき、挿入中にexecuteBatch()SQL 例外またはエラーが発生した場合、例外をスローしたレコードの挿入を見つけることはできますか?

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

java - Postgresql JDBC ドライバーのバッチ更新が自動コミットでロールバックする

postgres 9.3-1100-jdbc41 JDBC4 ドライバーを使用してバッチ挿入を行っています。

JDBC 仕様によると、自動コミットを無効にし、トランザクションをコミットまたはロールバックするのはアプリケーション次第です。

私の場合、トランザクションを使用していません (つまり、自動コミットが true です) が、バッチ内の挿入の 1 つが失敗すると、挿入はロールバックされます。

JDBC 仕様によると、「バッチ更新のコマンドの 1 つが正しく実行されなかった場合、このメソッドは BatchUpdateException をスローし、JDBC ドライバーはバッチ内の残りのコマンドの処理を続行する場合としない場合があります。」ここでは、以前に実行されたコマンドがロールバックされるとは言いません。

私の理解は間違っていますか?そうでない場合、ドライバーがこのように動作している理由と、そうである場合、仕様に従った正しい動作は何ですか。

0 投票する
5 に答える
14056 参照

yii2 - yii2 で batchUpdate を行う方法

yii2 で使用できるのは batchInsert のみで、yii2 ではbacthUpdate使用できません。yii2 で Codeigniter のようにこれを行うにはどうすればよいbatchUpdateでしょうか?

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

java - JDBC バッチ更新は、更新ステートメントの初期セットをスキップします

Java コードで JDBC バッチ更新 (Statement - void addBatch( String sql ) および int[] executeBatch()) を使用しています。このジョブは、テーブルに約 27,000 レコードを挿入し、後続のバッチで約 18,000 レコードを更新することになっています。

午前 6 時にジョブを実行すると、数千のレコードが欠落しています (これはデータベース監査ログから確認できました)。ジョブ ログから、更新ステートメントがすべての 18k レコードに対して生成されていることがわかります。すべての update ステートメントが順番にバッチに追加されることは理解していますが、バッチの先頭からのレコードのみが欠落しているようです。また、毎日固定数ではありません。ある日、最初の 4534 の更新ステートメントがスキップされ、別の日には最初の 8853 レコードがスキップされ、別の日には 5648 レコードがスキップされます。

当初、これはスレッドの問題である可能性があると考えていましたが、スキップされるブロックに常に同じ数の更新ステートメントが含まれているとは限らないため、その思考プロセスから離れました。最初の数千回の更新が挿入前に行われていると仮定すると、更新は少なくともデータベース監査ログに表示されるはずです。しかし、そうではありません。

これは、メモリ/ヒープの問題が原因であると考えています。ジョブを別の時間に実行すると、すべての 18k update ステートメントが取得され、それらが正常に実行されるからです。Oracle データベースの監査ログを確認したところ、欠落している更新ステートメントが午前 6 時の実行中にテーブルで実行されていないことがわかりました。それ以外の場合は、すべての更新ステートメントがデータベース監査ログに表示されます。

このジョブは現在ほぼ 3 年間正常に実行されており、この動作はほんの数週間前から始まりました。サーバー/環境への変更を確認しようとしましたが、何も飛び出しませんでした.

これが発生する理由を特定しようとしています。具体的には、JVM ヒープを使いすぎているプロセスがあり、その結果、更新ステートメントが上書きされたり実行されなかったりする場合です。

データベース: Oracle 11g Enterprise Edition リリース 11.2.0.3.0 - 64 ビット Java: Java バージョン "1.6.0_51" Java(TM) SE ランタイム環境 (ビルド 1.6.0_51-b11) Java HotSpot(TM) サーバー VM (ビルド 20.51-b01) 、 ミックスモード)

どんな提案でも大歓迎です、ありがとう。

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

sybase - バッチでの Sybase の大規模な更新

sybase で大規模な更新を行う必要があります。

Table1 には、列 a、b、c、e、f があり、約 900 万のレコードがあります。Table2 には、列 a、e、f、約 500000 レコードがあります。

syslog がいっぱいのため、以下の更新 SQL が失敗しました

インターネットで調査を行った後、次の 2 つの手順は同じエラーのために失敗しましたが、5000 レコードは正常に更新されました。

何か案は。ありがとうございました!

0 投票する
2 に答える
483 参照

javascript - 一度に複数のオブザーバブルを変更する際のノックアウト パフォーマンスを改善する

提供された JSFiddle の「クリック」イベントのパフォーマンスに関する提案をいただければ幸いです。

複数のオブザーバブルを一度に変更する際のパフォーマンスを向上させることが目的です。

更新通知をバッチで一時停止および再開する方法に関するドキュメントは見つかりませんでした。

http://jsfiddle.net/g9jpxcm2/