問題タブ [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-2005 - 遅いパラメータ化された挿入を高速な一括コピーに変更する方法 (メモリからでも)
コードにこのようなものがありました(.Net 2.0、MS SQL)
cmdInsert.ExecuteNonQuery ()をコメントアウトすると、このコードは 2 秒以内に実行されます。SQL 実行では 1 分 20 秒かかります。約 50 万件のレコードがあります。テーブルは前に空です。同様の機能の SSIS データ フロー タスクには、約 20 秒かかります。
- 一括挿入はオプションではありませんでした (以下を参照)。このインポート中に、私はいくつかの派手なことをしました。
- 私のテスト マシンは、2 GB RAM を搭載した Core 2 Duo です。
- タスク マネージャーを見ると、CPU が完全に使用されていませんでした。IOも十分に活用されていないようでした。
- スキーマは地獄のように単純です: プライマリ インデックスとして AutoInt を持つ 1 つのテーブルと 10 個未満の int、tiny int、および chars(10)。
ここでいくつかの回答をした後、メモリから一括コピーを実行できることがわかりました! ファイルから実行する必要があると思っていたので、一括コピーの使用を拒否していました...
これを使用すると、約20秒かかります(SSISタスクのように)
email - 大量/大量の電子メール送信のために Web メール会社によってブロックされないようにしますか?
当社は 1 日に多くのメールを送信しており、今後もさらに多くのメールを送信する予定です。(数千) あと、一万通の大量発送もたまにあります。
hotmail、yahoo (web.de、gmx.net)、および同様の Web メール会社が、「一定期間に同じソースからあまりにも多くのメールが送信された」という理由でメールをブロックした経験がある人はいますか?
それについて何ができるでしょうか?昼夜を問わずメール配信を広げていませんか? レートは?
(念のため、合法的な電子メールについて話している...)
perl - ファイルの一括テキスト置換を行う簡単な方法はありますか?
プロジェクトのすべてのソース ファイルの一部のテキストを置換する Perl スクリプトをコーディングしようとしています。私は次のようなものが必要です:
しかし、それはディレクトリのすべてのファイルを再帰的に解析します。
スクリプトを開始しました:
しかし今、私は立ち往生しています。Perl を使用してすべてのファイルをその場で編集する簡単な方法はありますか?
変更されたすべてのファイルのコピーを保持する必要はないことに注意してください。私はすべてを転覆させました =)
更新: Cygwinでこれを試しました、
しかし、引数リストが許容される最大サイズまで爆発したようです。実際、Cygwinで非常に奇妙なエラーが発生しています...
sql - テーブル コンテンツの一括変換
現在、レガシー データベースからの移行操作を実行しています。何百万もの元の行の移行を実行し、元のコンテンツを複数の宛先の親/子行に分割する必要があります。
単純な 1 対 1 の移行ではなく、結果の行は ID で生成されたキーに基づく親/子の行であるため、移行を実行するための最適なメカニズムは何ですか?
スクリプト コンテンツを生成する時点で子行の ID 値を決定できないため、一括挿入を使用できないと思いますか? 私が現在考えることができる唯一の解決策は、アイデンティティを明示的に設定し、インポートの開始点を事前に決定することです。
他の誰かから意見があれば、フィードバックをいただければ幸いです。
automated-tests - testobjectマップからスクリプトに複数のテストオブジェクトを追加する方法
自動化する必要があるテスト:アプリケーションでは、1000個のオブジェクトを作成する必要があります。次に、各オブジェクトに移動して、値を設定する必要があります。
スクリプトを使用して、1つのオブジェクトを作成してから、このオブジェクトに移動して値を入力しました。
次に、オブジェクト作成ステップで、異なる名前の1000個のオブジェクトを作成するforループを配置しました。
次に、RFTの「オブジェクトをテストマップオブジェクトに追加」ウィザードを使用して、これらすべてのオブジェクトをテストオブジェクトマップに追加しました。
次に、これらすべてのオブジェクトをテストオブジェクトマップからスクリプトに追加します。RFTツールを使用すると、時間がかかる1つずつ追加できます。テストオブジェクトマップからこれらすべてのオブジェクトを選択してスクリプトに追加できるメソッドが必要です。
あなたが知っているなら、私に解決策を提供してください。このために私はあなたに感謝します。
.net - 一括メール送信者の作成
顧客がマーケティング情報を電子メールで送信できるアプリケーションを構築したいと考えています。これは、正当な大量メール送信のみに使用される慎重に監視されたツールです。必要な「購読解除」機能などをすべて備えています。
ソリューションは、VB.NET を使用して構築されます。
私の質問は、実際に電子メールを送信する最良の方法に関するものです。データセンターには、使用できる SMTP サーバーがあります。ある種のマルチスレッド Windows サービスを作成して、送信する電子メールのデータベースを監視し、System.Net.Mail API を呼び出してこのサーバー経由で送信できると考えています。
これにより、適切な時間枠内で何千人ものユーザーにメールを送信するために必要なレベルのパフォーマンスが得られるでしょうか?
そうでない場合は、「下位レベル」で物事を行うこと、あるスレッドで DNS ルックアップを実行すること、別のスレッドのポート 25 で関連するサーバーに直接送信することなどを検討する必要がありますか?
任意のポインタをいただければ幸いです!
本当の答えではありませんが、興味のある人のための更新です...私は現在、 ActiveUp の ActiveMail という製品を見ています。
これは MTA (独自の MX ルックアップを実行し、メールを直接送信する) のようで、マルチスレッドのキューイング アプリケーションが付属しています。
c# - カスタム区切り文字とC#の非常に大きなフィールド値を使用してテキストを解析する最速の方法は何ですか?
非標準の区切り文字(コンマ/引用符またはタブ区切りではない)を持ついくつかの区切られたテキストファイルを処理しようとしています。区切り文字はランダムなASCII文字であり、区切り文字の間に頻繁に表示されることはありません。調べてみたところ、.NETで自分のニーズに合うソリューションは見つからなかったようです。このために作成されたカスタムライブラリには、巨大な入力(いくつかのフィールド値を持つ4GBファイル)に関していくつかの欠陥があるようです。非常に簡単に数百万文字)。
これは少し極端に思えますが、実際には、一部のレビューソフトウェアがドキュメントの完全なコンテンツを含むフィールド値を持つことは、電子ドキュメントディスカバリー(EDD)業界の標準です。参考までに、私は以前、問題なくcsvモジュールを使用してPythonでこれを実行しました。
入力例は次のとおりです。
編集:それで、私は先に進んで、区切られたファイルパーサーを最初から作成しました。バグが発生しやすいので、このソリューションを使用するのはちょっとうんざりです。また、このようなタスクのために独自のパーサーを作成する必要があることは、「エレガント」または正しいとは感じません。とにかくパーサーを一から書く必要はなかったのではないかと思います。
c++ - sqlite3でのより高速な一括挿入?
sqlite3データベースにロードしたい約30000行のデータのファイルがあります。データの各行に対して挿入ステートメントを生成するよりも速い方法はありますか?
データはスペースで区切られ、sqlite3テーブルに直接マップされます。ボリュームデータをデータベースに追加するための一括挿入方法はありますか?
それが組み込まれていない場合、誰かがこれを行うためのいくつかの明らかに素晴らしい方法を考案しましたか?
APIからそれを行うC++の方法はありますか?
sql-server - MS SQL Server - ネットワーク経由の一括挿入
ファイルから一括挿入を行う必要がある MS SQL Server を使用するアプリケーションがあります。問題は、データベースとアプリケーションが別々のサーバーでホストされることです。ネットワーク全体で一括挿入を行う最善の方法は何ですか? これまでに思いついた2つのアイデア:
アプリ サーバーから、db サーバーが検出できるディレクトリを共有し、リモート ファイルから一括挿入ステートメントを使用してインポートを実行します。
dbサーバーからFTPサーバーを実行します-インポートが実行されると、ファイルをdbサーバーにftpし、ローカルファイルからの一括挿入を使用してインポートを実行します(私はこのオプションに傾いています)。
これを行うためのより良い方法があるかどうか、またはそうでない場合は、どれが最も理にかなっているのか、そしてその理由を誰か他の人に教えてもらえますか?
c# - .NET SqlCommand から呼び出されたときに SQL Server 一括挿入が失敗する
SQL Server 2005 データベースで一括挿入を行うストアド プロシージャがあります。このストアド プロシージャを SQL から呼び出すと (ローカル フォーマット ファイルとデータ ファイルの名前を渡す)、問題なく動作します。毎回。
ただし、この同じストアド プロシージャが C# .NET 3.5 コードから呼び出されると、SqlCommand.ExecuteNonQuery
断続的に動作します。
失敗するSqlException
と、次のように生成されます。
一括読み込みできません。フォーマット ファイル「c:\bulkinsert\MyFile.fmt」の列番号が無効です
このエラー メッセージは正しくないと思います。
コードから一括挿入を呼び出す際に同様の問題が発生した人はいますか?
ありがとう。