問題タブ [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.
data-binding - DataBinding で大量の通知を回避する方法
データバインディングのシナリオでは、これは非常に一般的な問題だと思います。バッチ更新を実行していて、プロパティの変更に依存する計算/アクション/すべてが更新ごとに実行されるのを避けたい場合、通常はどうしますか?
通常、最初に頭に浮かぶのは、新しいブール値を導入するか、イベントハンドラーをフック/フック解除することです...
このアプローチについて私が気に入らないのは、次のとおりです。
- それらは新しい複雑さをもたらします(維持する必要があります...)
- 抑制された通知が後で送信されることを確認する必要があるため、エラーが発生しやすくなります。
誰かがこの問題に対処しやすく、より便利な方法ですでに対処しているのではないかと思っています。
ティア・マーティン
編集:誤解しないでください。私は.NETがBindingListからRaiseListChangedEventsのようなものを提供することを知っています...それらはすべて、私が説明したのとほぼ同じ方法で問題に対処していますが、欠点をリストする必要のない別の方法を探しています. 多分私は間違った道を進んでいますが、ここで試してみます...
java - Google App-Engine Java バッチ更新
.csv ファイルをアップロードして、レコードを bigtable に保存する必要があります。私のアプリケーションは、csv ファイル内の 200 レコードを正常に解析し、テーブルに保存します。
これがデータを保存するための私のコードです。
しかし、レコードが増えないとタイムアウトエラーが発生します。
csv ファイルには、最大 800 レコードを含めることができます。App-Engineでそれを行うことは可能ですか?
(バッチ更新のようなもの)
sql-server-2008 - 従来の ASP および ADO でのバッチ更新の作成
変更してから更新したい多数のレコードを取り込む ASP フォームがあります。現在、更新は、単純に SQL ステートメントを構築し、各レコードに対してデータベースを呼び出す DLL を介して、一度に 1 つずつ更新として行われます。
ここで、SQL にチェックを入れて、特定の建物から最後のタイプの場所を削除していないことを確認する必要があります。5 つの職場があり、それらすべての職場をオフィスに変えようとすると、フロアごとに少なくとも 1 つの職場が必要であるというエラーが表示され、SQL は行を更新せずに終了するはずです。現在、最後の行まで各行を更新してから、エラーをスローします。
誰かが、SQL または更新をバッチ ジョブするようにすべきだと指摘しましたが、どうすればよいかわかりません。ヒントはありますか?
java - この BatchUpdateException はどういう意味ですか?
stmt.executeBatch() ステートメントからこの BatchUpdateException を取得しています。
インターネットには、この例外メッセージに関する情報がありません。どういう意味ですか?トレースバックには、ストアド プロシージャが失敗したこと以外に役立つ情報は含まれていません。
oracle - 主キー欠落挿入なしの Oracle バッチ挿入
ojdbc14.jar ドライバーと Spring の SimpleJdbcTemplate batchUpdate メソッドを使用して、主キーのない Oracle 9i テーブルに 100,000 を超えるレコードを挿入しようとしています。ここに私のコードスニペットがあります:
}
inputData List、dataArray、およびバッチ長のサイズはすべて同じ期待値です。batchUpdate は例外をスローせずに完了し、挿入された配列内のすべての項目が -2 (成功) を返すため、後続の for ループは何も出力しません。ただし、予期される 100,000 以上のレコードではなく、42,000 レコードのみが宛先テーブルに永続化されます。
入力コレクションをループし、アイテムごとに更新を実行して batchUpdate を置き換えると、100,000 件以上のレコードが保持されます。ただし、改善されたパフォーマンスを利用するために、batchUpdate を使用したいと考えています。
なぜ batchUpdate が機能しないのか、誰か考えはありますか? 主キーの欠落と関係があると思わざるを得ません。
以下は、inputData リストの作成に使用されるソース テーブルのデータです。
そして、batchUpdate 後に保持されるものは次のとおりです。
ソース テーブルの 24 行は、宛先テーブルにも 24 行あるはずですが、データが取り込まれるのは 11 行のみです。
mysql - SQL を使用して、結果の並べ替え操作の位置に基づいて列をバッチ更新しますか?
私の脳は今朝、働くのをやめることにしました。別の列による並べ替えに基づいて、テーブルの「display_order」列をバッチ更新できる MySQL および SQLite 互換クエリが必要です。
たとえば、次のフィールドがあるとします: display_order、first_name、last_name、date_created。「last_name で並べ替えて、display_order を順次に更新する」と言いたいです。
参考までに、データベースはこれらのフィールドよりもはるかに複雑であり、設計が不十分であるため、その場で複雑な並べ替えを行うには数十年かかります。とは言っても、直接的な「SELECT * FROM tbl ORDER BY display_order」が機能するように、特定のレポート、トランザクションなどの順序でデータを事前に取得する必要があります。
一番。
select - jdbcバッチ挿入およびクエリと、生成されたキーを使用した単一挿入
キーを自動的に生成するテーブルに大量の行を挿入したいと考えています。JDBC は、生成されたキーの取得がバッチ更新で機能することを保証しません。
It is implementation-defined as to whether getGeneratedKeys will return
generated values after invoking the executeBatch method.
(JDBC 4.0 仕様 2006、p. 135)。
私には2つの選択肢があります。すべての行を個別に挿入してキーを取得します。または、バッチ挿入を実行してからキーをクエリします。
複数のキーをクエリするためのラウンドトリップを避けるために、ここでこのアプローチを使用できます。たとえば、サイズの異なる 5 つの準備済みステートメントがある。そして、私の「バッチクエリ」を可能な限り最小のステートメントに分割します。
より速い方法は何ですか?
database - Jdbc バッチ更新による適切なキー取得戦略
batchUpdate
JDBCの機能を使用して、自動生成されたキーを持つテーブルに大量のデータを挿入します。JDBCは何も言っておらずbatchUpdate
、getAutogeneratedKeys
データベースに依存しない回避策が必要です。
私のアイデア:
キーを手動で挿入してから使用する前に、データベースから次の配布されたシーケンスを何らかの方法で引き出します。しかし、JDBC には
getTheNextFutureKeys(howMany)
. では、これを行うにはどうすればよいでしょうか。Oracle などでキーをプルすると、トランザクションも保存されますか? したがって、1 つのトランザクションだけが、同じフューチャー キーのセットをプルできます。トランザクション中にのみ有効な偽の ID を持つ余分な列を追加します。
他のすべての列をセカンダリ キーとして使用して、生成されたキーをフェッチします。これは実際には 3NF 準拠ではありません...
より良いアイデアはありますか、またはアイデア 1 を一般化した方法でどのように使用できますか?
java - 休止状態の多対多の削除
別のオブジェクトと多対多の関係が存在する場合、コンテンツを削除する際に問題が発生します。
削除を実行するには、名前付きクエリの配列があり、削除するには、次のように、配列をループしてエンティティごとに削除を実行します。
繰り返しでEntityWithManyToMany.deleteByContentId HQL バッチ クエリを実行しようとすると、ログに変換された sql 命令が表示されますが、その後に同じ行の一連の挿入が続き、MySQL は正しく制約エラーを返します。
これは、削除しようとしている多対多の関係オブジェクトです。
問題がCascadeTypeに関係している可能性があると思いますか? どうすればこれを解決できますか?
どんな提案でも大歓迎です!
どうもありがとう、ダビデ。
asp.net - SQLServer2008で一括更新する方法
10000レコードを含むテーブルがあり、プレーンテキストパスワードを配置するためのフィールドを追加したので、すべてのレコードを更新したいのですが、ユーザー名に基づいて新しいフィールドを更新する必要があります...以下のように。
sqlcommandを使用して、.netコードからこのクエリを実行しています。しばらくロードした後、ページを更新しようとすると、次のようなメッセージが表示されます。
助けてください。