1

タブで区切られたファイルから Access データベースに約 30,000 行のデータをインポートする際に必要な速度を得るのに問題があります。ファイルのインポートは、私が作成した VB.net 2010 プログラムから管理されます。

プログラムは現在、各行をループし、各行に対して SQL 挿入ステートメントを発行しています。ただし、これが完了するまでに約 2 時間かかります。[外部データの取得] を使用して同じファイルを手動でアクセスに直接インポートすると、約 30 秒かかります。

MSアクセスにリンクされたデータグリッドビューを作成し、ネイティブ.netコマンドを実行してファイルをデータグリッドビューにインポートし、アクセスするデータをすばやく書き込むことができるかもしれないと考えていましたが、これが可能かどうかはわかりません.

ちなみに、手動インポートはオプションではなく、さまざまな理由から vb.net アプリケーションを経由する必要があります。

物事をスピードアップする方法について何か提案をしてもらえますか?

ありがとうサイモン

4

2 に答える 2

2

MS Access接続に対してSQLステートメントを実行して、text/csvをインポートできます。新しいテーブルにインポートするには:

cmd.CommandText =
    "SELECT F1 AS id, F2 AS firstname " &
    "INTO MyNewTable " &
    "FROM [Text;FMT=Delimited;HDR=No;CharacterSet=850;DATABASE=C:\__tmp].table1.csv;"

既存のテーブルにインポートするには:

cmd.CommandText =
    "INSERT INTO MyExistingTable " &
    "SELECT F1 AS id, F2 AS firstname " &
    "FROM [Text;FMT=Delimited;HDR=No;CharacterSet=850;DATABASE=C:\__tmp].table1.csv;"

非標準の区切り文字にはschema.iniファイルを使用することもできます。(データを事前にフォーマットされたファイルにエクスポートし、アクセスからコンマ区切りファイル(csv)を作成します-Windowsから毎日スケジュールされます

于 2012-07-05T09:24:18.093 に答える