2012-05-22 3 views
7

外部のユーティリティ(つまりbcp)を使用しないでを使わずにSQL 2008のテーブルにExcelテーブル(VBAアレイ)からのデータを入手する最も速い方法を知っていますか?? 私のデータセットは通常6500-15000行、約150-250列です。自動化されたVBAバッチスクリプトで約20〜150件のデータを転送してしまいます。ExcelテーブルのデータをSQL 2008R2に転送する最速の方法

私は、以下のものを列挙されているSQL 2008にExcelのテーブルから大量のデータ(VBA)を取得するためのいくつかの方法を試してみました:(VBA配列に

方法1.パステーブルをストアドプロシージャに送りますADO) - SQLへの送信が遅い

方法2切断されたRecordSetを作成してから、同期します。 - SQLへの送信VERY SLOW

方法3.テーブルをVBA配列に入れ、配列をループして連結し(区切り文字を使用して)、ストアドプロシージャに送信します。 - SQL SLOWに送信するが、方法1または2より速い。

方法4.テーブルをVBA配列に入れ、配列をループして(区切り文字を使用して)連結し、各行をADOレコードセット.addnewコマンドで配置する。 - SQLへの送信は非常に高速です(メソッド1-3より約20倍高速です)。しかし、別の手順を使用してデータを分割する必要があります。これにより、かなりの待機時間が追加されます。

メソッド5. VBA配列にテーブルを配置し、XMLにシリアル化し、VARCHARとしてストアドプロシージャに送信し、ストアドプロシージャでXMLを指定します。 - SQLへの送信が驚くほど遅い(方法1または2より約100倍遅い)

私には何か不足していますか?

答えて