問題タブ [bulk]
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.
sql-server-2008 - ストアド プロシージャを使用した SQL Server 2008 一括更新
DBに2つのテーブルがあります。それぞれに「名前」列と「カウント」列があります。
「名前」列が等しい場合にのみ、最初のテーブルのカウントから2番目のテーブルのカウント列を更新したいと思います。
例:
最初のテーブル:
ネームカウント
ジャック 25
マイク 44
ネームカウント
ジャック 23
マイク 9
デビッド 88
結果 (2 番目のテーブルは次のようになります...)
ネームカウント
ジャック 25
マイク 44
デビッド 88
注:
1. どちらのテーブルも巨大です。(2 番目のテーブルの方が大きいですが...)
2. 更新はできるだけ速くする必要があります...
(ストアド プロシージャ以外のオプションがある場合は、ぜひ聞いてください。)
3. bigint として定義された「カウント」 while "Name" as nvarchar(100)
4. 最初のテーブルの "Count" フィールドは、常に
2 番目のテーブルの同等のフィールドよりも大きくなります。
最速の方法である限り、おそらく MERGE または TRANSACTION を使用すると、(ストアド プロシージャ以外の) もっと多くのオプションがあると思います...
ありがとう!
git - gitはバルクコミットの複数のファイルを元に戻します
私は、svnを捨てて、GITを続行するだけで、GITに精通する過程にあります。今、私は手を汚しました:
私はブランチを作成し、emacsマクロでたくさんのファイルを変更し、commit-aでそれらすべてをコミットしました。他のファイルにも他の変更を加えました。すべてをマスターにマージする前に、私はいくつかのことをテストしましたが、emacsマクロにはいくつかの重要な詳細が欠けていました。したがって、一括コミットの大部分は元に戻す必要がありますが、すべてではありません。また、一括コミット後のコミットも安定しています。バルクコミットの大部分を復元するための最も簡単な方法は何ですか?チェリーピックユーティリティはありますか?私は現在、コマンドラインgitとemacs vcs(git-el)を使用しています。私は本を購入していくつかのサイトを閲覧しましたが、これまでのところ満足のいく答えはまだ見つかりません。
よろしく、
ジェロエン。
c# - Oracle 列/値のサイズの問題
ODP.NET と Oracle 10g を使用して、データ テーブルから db テーブルにデータを転送しています。私が直面している問題は、値を NUMBER(12,3) 列に挿入しようとするときです。値は 100100100,55 です - エラーが発生しました: 行 '1' 列 '6' でエラーが発生しました ORA-26093: 入力データの列サイズ (24) が最大入力サイズ (22) を超えています
しかし、100100100,5を試してみると問題なく動作します
このエラー メッセージは意味がありません。
誰かが私に理由を説明できますか? ありがとう!
また、そのエラーをスローするスニペットは次のとおりです。
php - mysql エントリに PHP を使用した一括操作
内部にチェックボックスがある MySQL データベースのテーブルに結果を表示しています。ユーザーが 5 行にチェックを入れて削除ボタンをクリックした場合、どうすれば多くの行を同時に削除できますか?
plsql - PL/SQL Bulk DML の実行が、親子制約のあるテーブルを含む大規模なデータセットで遅くなるのはなぜですか?
レコード テーブルに数十万以上のレコードがあるデータセットに対して、この PL/SQL パージ スクリプトの実行速度が遅い理由を突き止めようとしています。スクリプトを実行する前に、Record テーブルの特定のサブセット (約 75%) にパージのフラグが立てられます。
Record_Part テーブルの削除に他のテーブルよりも時間がかかるのはなぜですか? 3テーブルの親子階層の真ん中だからでしょうか。インデックスまたは制約に関して、ここで知識が不足していますか? この定期的なパージ プロセスをスピードアップするにはどうすればよいですか?
これは Oracle 10g データベースです。
私の質問を読んでくれてありがとう。
スキーマ (部分):
- レコード テーブルは親テーブルです
- Record_Part テーブルは Record の子です (Record には多くの Record_Part があります)
- Record_Person は Record_Part の子です (Record_Part には多くの Record_Person があります)
- 一般的な比率は 1:7:9 (レコード:レコードの部分:レコードの人物) です。
記録
- PK - システム ID
- 物理ID
- 保留中
- パージ中
Record_Part
- PK - Part_pk
- FK - record_sysid
Record_Person
- PK - システム ID
- FK - Part_pk
ランタイム
50000 件のレコード エントリ
- record_person forall は 1:40 分で完了します
- record_part forall は 1 分 20 秒で完了します
- forall の記録は 10 秒で完了します
300000 レコード エントリ
- record_person forall は 9 分で完了します
- record_part forall は 2 時間で完了します
- forall の記録は 20 分で完了します
2000000 レコード エントリ
- record_person forall は 1 時間で完了します
- record_part forall は 13 時間 (!) で完了します
- forall の記録は 8 分で完了します
インデックスと制約の DDL
スクリプト: (以下のスクリプトではタイムスタンプの印刷は省略されています)
database - Oracleの質問:コミット数とbindsize / readsizeを使用して、従来のパスの負荷を改善する際の問題、direct = false
私は現在、アカデミックベンチマークであるTPC-Hを実行しており、ダイレクトパス(非常にうまく機能し、非常に高速でした)と従来のパスを使用してロードしたいいくつかの大きなテーブルがあります。
そのために、私はこのバッチスクリプトを使用しました:
問題は、bindsizeやreadsizeオプションにどのような値を指定しても、常に65534から65534の行にコミットすることです。テーブルごとの正確な行数である%%Bサイズをすでに渡しました。
直接ロードでは、ホールテーブルがロードされた後に実際に行われたように行とコミットを使用しました。
私はそのようなことをしたいのですが、従来のロードパスでは、それが速くないことはわかっていますが、それがポイントです。
正しいパラメータを指定して、次のことができるようにする方法を教えてください。1-一度にできるだけ多くのデータをロードする。
2-コミットの頻度を減らし、できればテーブルのロードの最後にコミットします。
テーブルの名前と行数は次のとおりです。
lineitem 23996604->が最大で、約があります。ディスク上の3GBの
注文6000000
パーツアップ3200000
パーツ800000
顧客600000
サプライヤー40000
国25
地域5
php - キャッシュされた mysql 挿入 - データの整合性の維持
多くの挿入を行いたいのですが、しばらくしてから mysql を更新することは可能でしょうか?
たとえば、次のようなクエリがある場合
ビューが 100 に達するまでこのクエリを保存してから、100 回を超えてクエリを実行する代わりに、次のクエリを実行することはできないでしょうか。
さて、それが完了したとしましょう。次に、データの整合性の問題が発生します。たとえば、同じクエリを実行しようとしている 100 個の php ファイルが開いているとします。キャッシュされたビューをインクリメントするロックメカニズムがない限り、複数のファイルがキャッシュされたビューの同じ値を持つ可能性があるため、プロセス 1 に 25 のキャッシュされたビューがあり、php プロセス 2 に 25 のビューとプロセスがあるとします。 3 には、ファイルから 27 のビューが含まれる場合があります。ここで、プロセス 3 が終了し、カウンターが 28 にインクリメントされたとします。次に、php プロセスがほぼ終了し、プロセス 3 の直後に終了したとします。これは、カウンターが 26 に戻ることを意味します。
では、高速でありながらデータの安全性も確保されたソリューションはありますか。
ありがとう
file - 1000 以上の画像の一括操作
こんにちは、画像を操作するための Windows バッチ スクリプト ファイルの助けを借りて喜んでいます。古いソフトウェアから移行しています。以前はファイルをフォルダーに保存していましたが、各ファイルには独自のユーザー ID (例: 10050.jpg) がありました。これらのイメージの 1000 のように、イメージをイメージ名で新しいフォルダーに配布し、新しいソフトウェアを更新するための SQL ファイルを作成したいと思います。たとえば、次のようになります。
に行きます:
そして作成されたSQLファイル:
この情報を抽出するためのバッチ ファイルを作成するのを手伝ってくれる人はいますか? 私はこれでランク初心者です。ありがとうございました!
sql - BULK INSERT と Format File を使用するとカンマが問題を引き起こす
SQL Server で BULK INSERT とフォーマット ファイルを使用して .CSV ファイルをインポートしようとしています。フォーマット ファイルを作成し、各値に正しいフィールド ターミネータを設定しました。フォーマット ファイルは正しく検証され、いくつかのテスト データを正常にインポートできました。
ただし、次のように、引用されたテキストの途中でコンマが発生すると問題が発生します。
" "SB","7Y4386429Y0351805","B5503","","Chris",1,10,"Paypal","こんにちは、支払いが遅れて申し訳ありません。すぐに支払いを送信します."
(サンプルデータ)
引用されているフィールドと引用されていないフィールドを正しく識別するようにフォーマット ファイルを設定しましたが、最後のフィールドの中央にコンマがあり、インポート中にエラーが発生しています。
FieldTerminator を "," に設定して、これも完全に省略しようとしましたが、ターミネータを無視して、代わりにフォーマット ファイル内のものを使用するべきではありませんか?
フィールドが引用符で囲まれているため、コンマによってフィールドが終了する理由がわかりません。これは設計によるものですか?フォーマット ファイル内のどのフィールド ターミネータとも一致しないため、コンマは無視する必要がありますか?
ここでのオプションは何ですか? 問題のデータは Paypal からのものであるため、エクスポート方法を変更する可能性はあまりありません。
何か案は?
重要な場合は、フォーマット ファイルの最初の部分を以下に示します (実際のファイルには 56 行が含まれます)。56 行すべてが同じ SQLCHAR データ型、同じ長さ、および同じ終了値を持ちます。
どんな助けでも大歓迎です。
ありがとう、
クリス。
sql-server - 追加のカラムを備えたバルクインサート
こんにちは私はcsvファイル(Excelからのもの)を持っています、そして私はそれを私のテーブルに挿入するためにBULKINSERTを使用します。テーブルの列数は、csvファイルの列数と一致します。
ただし、たとえばProcessedと呼ぶことができる追加の列がテーブルに必要です。理想的には、これはビット列であり、最初はすべての値がfalseになります。
これを達成するための(簡単な)方法はありますか
ありがとう
--MB