私はQtアプリケーションを持っており、特殊なテキストファイルを読み込んで解析し、約100000行をFirebirdデータベースの一時テーブルに挿入します。次に、ストアド・プロシージャを起動してこの一時表を処理し、永続表にいくつかの変更を適用します。メモリ内のテンポラリ・テーブルに100000行を挿入するには、Firebirdで約8秒かかります。クライアントアプリケーションからのMS SQL 2008データベースへの大量インポート速度の向上
MS SQL Server 2008を使用してこのような動作を実装する必要があります。単純なシリアル挿入を使用すると、100000行で約76秒かかります。残念ながら、それは遅すぎます。私は以下の方法を検討した:
- 一時テーブル(#と##)。 tempdbスキームのディスクに格納されます。速度向上はありません。
- バルク挿入。非常に良い挿入速度が、クライアントまたはサーバー側の共有フォルダを持つ必要があります。
- テーブル変数。 MSDNでは、「大量のデータ(100行以上)を格納するためにテーブル変数を使用しないでください。
クライアントアプリケーションからMSSSQL2008への挿入速度を向上させる正しい方法は何ですか?
ありがとうございます。
「ただし、クライアントまたはサーバー側の共有フォルダを持つ必要があります。いいえ、ありません。 –