none
AccessからSQLserverへのInsert時間短縮について RRS feed

  • 質問

  • AccessVBAを使用し、AccessからSQLserverへ大量のデータをInsertする処理の時間短縮について、ご質問いたします。

    現状「AccessDBから条件に合ったデータをselectし、SQLserverのテーブルにInsertする」動作をLoop処理で行っていますが、処理に時間がかかるため、処理時間の短縮方法を探しています。

    最適な方法があればご教授ください。

    また、現在、Selectしたデータをcsvファイルに書き出し、それをblukInsertまたはbcpコマンドを用いて一括挿入する方法を検討しています。

    blukInsertについてはAccessVBAからは発行できず、プロシージャとして登録しAccessからキックする方法しかないと認識していますが、相違ないでしょうか。

    ご回答をお願いいたします。

    2011年6月15日 6:46

回答

  • こんにちは。

    バージョン等詳細が書かれていないので何とも言いにくいですが

    処理に時間がかかるため、処理時間の短縮方法を探しています


    まずはボトルネックを探すのが定石かと思います。
    (Selectが遅いのか、Loopが遅いのか Insert自体が遅いのか等)

    Accessの処理が遅いのであればせっかくBULKしても余計遅くなっちゃいますしね。

    あと、VBAってコマンド叩けませんでしたっけ?
    VBAでbcpコマンド叩ければストアドを作る必要は無いかなと思います。
    2011年6月17日 22:14