問題タブ [bulkinsert]
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.
ruby-on-rails - Rails データベースの効率的な一括更新
データベースを頻繁に更新する rake ユーティリティを構築しようとしています。
これは私がこれまでに持っているコードです:
私が抱えている問題は、10 万以上のエントリを入力するのに数分かかることです。データベースを更新するより効率的な方法を見つけたいと思います。理想的には、これはデータベースの種類とは無関係のままですが、そうでない場合、本番サーバーは MySQL で実行されます。
洞察をありがとう。
sql-server - Windows7 での SQL Server 一括挿入の問題
SQL Server Express 2005 SP3 を使用するアプリケーションがあります。このアプリケーションは、XP を実行している数百人のユーザーに配布されています。しかし、弊社はまもなく Windows7 に移行します。私のアプリケーションは SQL Server で一括挿入操作を使用しており、XP では問題なく動作します。ただし、Windows7 では、SQL Server Management Studio を管理者として開き、一括挿入操作を適切に実行するために次のコマンドを実行する必要があります。
これを各ユーザーの PC で手動で行うのは明らかに非現実的です。したがって、ユーザーがアプリケーションを管理者として実行していない場合、これをスクリプト化する方法を考えています。インストール時に SQL Server ブートストラップ パッケージで設定できるものですか? 既存のインストールはどうですか?
linq-to-sql - INSERT INTO...SELECTをLINQtoSQLで実行する
LINQtoSQLを使用して「insertinto...select」タイプのコマンドを実行できるかどうかを調べようとしています。特定のテーブルに複数の行を挿入する単一のSQLコマンドをデータベースに送信できるようにするLINQtoSQLコードのビット。
たとえば、LINQtoSQLで次のT-SQLステートメントをSQLServerデータベースに送信するにはどうすればよいですか。
もちろん、この関数を使用してこれを実現することもできDataContext.ExecuteCommand
ますが、これは、で取得する自動トランザクション処理を利用せずにすぐに実行されますDataContext.SubmitChanges
。これ以外にも一連のアップデートがあり、エラーが発生した場合にすべてロールバックしてほしい。
何か案は?
更新:実際のコードは次のとおりです。
簡単な説明:T_EDR_FILEBODies
エンティティは、インポートするいくつかのテキストファイルの内容を基本的に格納するデータベーステーブルにマップされます。1つのレコードは、テキストファイルの1行に対応します。
私がやろうとしているのは、1つのファイルからレコードをコピーし、新しいファイルID(ID_EDR=id_edr_filt
)を付けて、一部の行をフィルターで除外することにより、フィルター処理されたバージョンのファイルコンテンツを作成することです。LINQ to SQLエンティティは、データベーステーブルへの直接マッピングです。これまでのところ、データコンテキストにコードを追加していません。それらは主キーを持っています、さもなければ私はそれらに挿入をすることができません(私が主キーを取り除くならば私はその例外を取り除くことができるだろうどこかで読んだでしょう、しかしあなたが見ることができるように、それはそうではありません私の場合は動作します)。
実行すると、次の例外がスローされInsertAllOnSubmit
ます。
クエリでのエンティティタイプ「T_EDR_FILEBODY」の明示的な構築は許可されていません。
クエリ内にエンティティを明示的に作成するのは問題があることを理解していると思います。クエリによって返されるエンティティには変更の追跡機能があり、submitchangesが呼び出されると変更がデータベースに変換されます。しかし、クライアント側で作成されたエンティティの変更をデータベースにどのように変換できますか?しかし、これは本当に、LINQtoSQLを使用してINSERTINTO... SELECTタイプのコマンドを実行できないことを意味しますか?
asp.net - Mysql Connector for .NET を使用したバッチ挿入
MySql コネクタで利用できる一括挿入機能があるかどうか疑問に思っていました。何百万ものレコードを作成する必要があり、バッチ処理はこれに最適な機能になると思います。
MySql データストアを使用した MVC プロジェクトに取り組んでいます。
ありがとう、レオナルド
sql - ファイル名が変数である *temporary* テーブルにファイルを BULK INSERT する方法は?
データファイルとテーブル名が変数であるテーブルにデータファイルを BULK INSERT するために使用する次のようなコードがあります。
は標準テーブルでは問題なく機能しますが、データを一時テーブル (たとえば、#MyTable
) にロードするには、同じようなことを行う必要があります。しかし、これを試してみると、次のエラーが表示されます。
BULK INSERT
問題は、ステートメントがオンザフライで構築され、 を使用して実行されEXEC
、呼び出し#MyTable
のコンテキストではアクセスできないという事実によるものだと思います。EXEC
このBULK INSERT
ようにステートメントを作成する必要があるのは、ファイル名をステートメントに挿入する必要があるためです。これが唯一の方法のようです。そのため、可変ファイル名を使用するか、一時テーブルを使用できますが、両方は使用できないようです。
これを達成する別の方法はありOPENROWSET(BULK...)
ますか?
更新: OK、私が聞いているのは、BULK INSERT と一時テーブルが機能しないということです。提案に感謝しますが、私のコードを動的 SQL 部分に移動することは、私の場合は実用的ではありません。
を試しOPENROWSET(BULK...)
てみると、同じ問題が発生しているようです。つまり、変数ファイル名を処理できず、以前のように SQL ステートメントを動的に構築する必要があります (したがって、一時テーブルにアクセスできません)。
したがって、非一時テーブルを使用し、別の方法でプロセスの分離を実現するという1つのオプションしか残されていません(一度に1つのプロセスのみがテーブルを使用できるようにすることによって-私はいくつかの方法を考えることができますそれを行う)。
気に障る。私が最初に意図した方法でそれを行う方がはるかに便利だったでしょう. 些細なことの 1 つにすぎませんが、1 日の時間を無駄にしてしまいます...
sql-server - SQL Server で大量のデータを操作する最良の方法は何ですか?
データベースで次の操作を実行する必要があります。
テーブル B への外部キーである列 B_ID を持つテーブル A があります。テーブル A には同じ値の B_ID を持つ多くの行があり、B の対応する行を複製してリダイレクトすることでこれを修正したいと考えています。 Aからそれらまでの行。
これはすべて比較的単純であり、カーソルを反復処理し、テーブル B の行を複製するためのストアド プロシージャを呼び出すことで、これを解決するスクリプトを既に作成しています。問題は、A テーブルと B テーブルの両方が巨大で、 B の同じ行を指しているテーブル A 内の膨大な数のグループ。
最終的に (数分の実行後) トランザクション ログがいっぱいになり、クラッシュします。作業を妥当なサイズのバッチに分割して 1 つずつ実行しようとさえしましたが、これも最終的にログがいっぱいになります。
どういうわけかログをクリーンアップすることとは別に、SQL Serverでデータの一括挿入/更新を処理する方法があり、より高速でログをまったく爆発させませんか?
sql-server - SQL Server 2008 - T-SQL でのバッチ ジョブの実行と一括挿入
私は興味深い問題に直面しており、それが可能かどうかさえわかりません:
SQL Server 2008 で、実行時に次の処理を行うストアド プロシージャを作成する必要があります。
バッチ ファイルを実行します - SQL Server 上にあります (例: C:\Mybatchfile.bat) - このバッチ ファイルは単一のテキスト ファイルを SQL Server 上のディレクトリ (例: C:\Output\BatchFileOutput1.txt) に出力します。
テキスト ファイルの内容をデータベース内のテーブルに一括挿入します。
サーバーからテキスト ファイルを削除します。
これを達成する方法を実際に掘り下げる前に、これは可能ですか?
前もって感謝します
sql-server - SQL Server 2008 - テキスト ファイル全体を 1 つのフィールドに一括挿入する
書式設定されたテキスト (改行、改行、タブのみ) を含むテキスト ファイル (txt) があります。これにはドイツ語の文字も含まれています。
T-SQL で一括挿入コメントを使用して、テキスト ファイルをデータベース テーブル内の 1 つのフィールドに読み込みたいと考えています。
このコマンドを実行しました:
問題は、テキスト ファイルの各行を一時テーブルの新しい行に読み込むことです。ファイル全体 (フォーマットとすべて) を 1 行に読み込みたい。
また、ドイツ語の文字が失われているように見えます。結果ビューでは、印刷できない文字のデフォルトに置き換えられています。
どうすればこれを達成できるのでしょうか?
ありがとう。
iphone - iPhoneのsqlite dbに一括挿入
100 レコードのバッチを挿入しています。それぞれのレコードには、任意の長さの HTML 文字列を含む辞書が含まれています。iPhone では、このトランザクション中に runloop が数秒間ブロックされます。別のスレッドを使用する唯一の手段ですか? 私はすでにHTTPサーバーからデータを取得するためにいくつかを使用しています.sqliteのドキュメントでは、スレッドセーフであると想定されているにもかかわらず、データベースとのスレッド化を明示的に思いとどまらせています...私が非常に間違っていることはありますか?操作全体を完了するのにかかる時間を大幅に短縮しますか?
php - SQL Server 2008 でバイナリ データをストアド プロシージャに渡す
ファイルをデータベースに保存する方法を見つけようとしています。データベースではなくファイル システムにファイルを保存することをお勧めしますが、私が取り組んでいる仕事では、データベースを使用してこれらの画像 (ファイル) を保存することを強く望んでいます。
いくつかの制約もあります。私は管理者ユーザーではなく、すべてのコマンドを実行するストアド プロシージャを作成する必要があります。これまでのところ、それほど困難ではありませんでしたが、私の人生では、ファイル (画像) をデータベースに保存する方法を確立することはできません。
BULK コマンドを使用しようとすると、「バルク ロード ステートメントを使用する権限がありません」というエラーが表示されます。バルク ユーティリティは、ファイルをデータベースにアップロードする簡単な方法のように思えましたが、アクセス許可がない場合は回避策を考え出す必要があります。
ファイルアップロード入力タイプの HTML フォームを使用し、PHP で処理することにしました。PHP はストアド プロシージャを呼び出し、ファイルの内容を渡します。問題は、パラメータの最大長が 128 文字に制限されていることです。
今、私は完全に立ち往生しています。一括コマンドを使用する権限がなく、SP に渡すことができるパラメーターの最大長は 128 文字のようです。
バイナリ文字とASCII文字がうまく混ざらないので、問題が発生することを期待していましたが、行き止まりです...
ありがとう