問題タブ [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.
sql-server - SQL Server の一括挿入はトランザクション対応ですか?
SQL Server 2000 クエリ アナライザで次のクエリを実行すると、次のようになります。
40 行が OurTable のスキーマに準拠しているが、最後の 20 行の形式が変更されているテキスト ファイル (最後の 20 行のフィールドが少ないとします) では、エラーが発生します。ただし、最初の 40 行はテーブルにコミットされます。Bulk Insert を呼び出してトランザクションにならないようにする方法について何かありますか、または失敗時に強制的にロールバックするために明示的な何かを行う必要がありますか?
c# - C# 用のバルク/バッチ フロー ライブラリを知っていますか
私はピークパフォーマンス要件を持つプロジェクトに取り組んでいるので、効率のために複数の操作 (データベースへのデータの永続化など) を一括 (バッチ?) する必要があります。
ただし、次のようなわかりやすいフローをコードで維持したいと考えています。
ここで私が探している機能は、自動的に Persist() が一括で発生するようにすることです (つまり、非同期に) が、ユーザーに対しては同期であるかのように動作します (一括アクションが完了するまで、ユーザーはブロックする必要があります)。実装者が Persist(ICollection) を実装できるようにしてほしい。
あまりよく知らないフローベースのプログラミングについて調べました。ここで C# の fbp 用のライブラリを 1 つ見て、Microsoft の Workflow Foundation で少し遊んでみましたが、私の印象では、どちらも私が必要としているものにはやり過ぎです。一括フロー動作を実装するには何を使用しますか?
私が書いたものとまったく同じコードを取得したい(理解しやすくデバッグしやすい)ので、フローを相互に接続するために収量または構成を含むソリューションは、私の目的には不十分であることに注意してください。また、チェーン は私が探しているものではありません。最初にチェーンを構築してから実行したくはありません。単純なフローのように見えるコードが必要です (「A を実行し、B を実行し、C の場合は B を実行します。 D」を行います)。
sql - CSV からの SQL 一括インポート
大きな CSV ファイルを SQL サーバーにインポートする必要があります。私はこれを使用しています:
問題は、すべてのフィールドが引用符 (" ") で囲まれているため、行は実際には次のようになります。
どうにかしてそれらを一括インポートし、引用符をフィールド区切り記号として使用するように SQL に指示できますか?
編集: '","' を区切り文字として使用する際の問題は、提案されている例のように: ほとんどの例では、最初の " を最初の列に、最後の " を最後の列に含むデータをインポートし、先に進んでそれを取り除いてください。悲しいかな、最初の (そして最後の) 列は datetime であり、"20080902 を datetime としてインポートすることはできません。
私が読んだことから、FORMATFILEが道だと思いますが、ドキュメント(MSDNを含む)はひどく役に立ちません。
c# - 何百万ものレコードをフラット ファイルから SQL Server に挿入する際の落とし穴は何ですか?
パイプで区切られ、サイズが約 230 MB の txt ファイルを開く Windows フォーム アプリケーションを作成する旅を始めようとしています。このアプリは、このデータを SQL Server 2005 データベースに挿入します (明らかに、これは迅速に行う必要があります)。このプロジェクトでは c# 3.0 と .net 3.5 を使用しています。
私はアプリを求めているのではなく、ここでいくつかの共同アドバイスと潜在的な落とし穴をアドバイスしています。SQL の一括コピーが前提条件であることを収集したサイトから、考えるべきことはありますか (フォーム アプリで txt ファイルを開くだけでも大変な作業になると思います。おそらく、それを BLOB データに分割しますか?)。
ありがとうございます。誰かが必要な場合は、明確にするために質問を編集します。
sql-server - フラット ファイルをデータベースにロードするには、SSIS またはマルチスレッド C# アプリケーションを使用する必要がありますか?
SQL Server Integration Services (SSIS) 内には、数百万のレコードを保持できるフラット ファイルへの接続をセットアップし、そのデータを SQL DB にプッシュする機能があります。さらに、このプロセスは、Microsoft.SqlServer.Dts.Runtime 名前空間を参照して使用することにより、C# アプリから呼び出すことができます。
何百万ものレコードを含むフラット ファイルを SSIS で実行するのが最適でしょうか、それとも集合的な "あなた" は複数のワーカー スレッド (行を読み取って変数に追加するスレッド、その変数から DB に書き込むスレッド) を持つ ac# アプリを好むでしょうか? 、そしてそれらのスレッドを管理する「マザー」クラス?(開発ボックスには 2 つの CPU があります)
このデータ ( sql team blog ) を見たところ、100 万行のフラット ファイルの場合、SSIS が最速であることがわかりました。
あなたの考えは何ですか?
sql - SQL Server 2005 で値の配列を挿入する方法は?
単純な繰り返しなしで、値の配列 (おそらくフィールド名の付随配列、またはそれらの両方を含むマトリックス) を INSERT (または UPDATE) する SQL コードをどのように記述すればよいでしょうか?
c++ - Fastest way to create large file in c++?
Create a flat text file in c++ around 50 - 100 MB with the content 'Added first line' should be inserted in to the file for 4 million times
java - IBATIS を使用して INSERTS を実行する最速の方法
iBatis を使用して、1 つのテーブル (SQL Server 2005) に 20,000 行を挿入する必要があります。それを行う最速の方法は何ですか? 私はすでにバッチモードを使用していますが、あまり役に立ちませんでした:
.net - .NET を使用した Oracle への一括挿入
.NET を使用して Oracle に一括挿入する最速の方法は何ですか? .NET を使用して約 160K のレコードを Oracle に転送する必要があります。現在、insert ステートメントを使用して 160K 回実行しています。完了するまでに約 25 分かかります。ソース データは、別のデータベース (MySQL) からのクエリの結果として、DataTable に格納されます。
これを行うより良い方法はありますか?
編集:私は現在 System.Data.OracleClient を使用していますが、別のプロバイダー (ODP.NET、DevArt など) を使用したソリューションを受け入れる用意があります。
sql-server - インデックスの有無にかかわらず一括挿入
私が読んだコメントで
補足として、テーブルのインデックスを削除し、一括挿入操作の後に再作成する方が速い場合があります。
これは本当ですか?どのような状況で?