プロが教えるわが家の防犯対策術!

VB4→VB6へ、SQLサーバ7→2000へ、Access97→2003へ移行を行っています。
旧システムでは、約5秒で完了する処理が、移行後は、2分51秒かかります。
どのような処理かというと、
 1.SQLサーバのデータをSELECT
 2.AccessのテーブルにINSERT(もしくは、UPDATE)
 3.Accessのクエリ実行
 4.Accessのレポート表示
です。
新旧比較してみたのですが、1.SQLサーバのデータのSelectは、差はありません。
2.AccessのテーブルにInsertでは、
 Access97は、1秒、2003は、45秒です。
Updateとなると、Access97では、4秒、2003は、2分5秒となりました。

新システムの方が、遅くて性能が悪いようです。
どのように、チューニングしたらよいでしょうか?
また、原因等、ご存知でしたら、教えていただけないでしょうか?
よろしくお願いします。

A 回答 (1件)

VBから操作する仕様で97でDAOから2003でADOの接続に変更しても極端に処理速度が遅くなるような事は経験がありませんが・・。


VBコードでODBC接続はフォームロードで行う。アクセスの度に接続していてはレスポンスが悪い。
ODBC接続解除はフォームアンロードで行う。
リクエリを使用するレコードセットオープンはVBのフォームロードなど起動時に一度実行される場所で行わないとレスポンスが最悪になる。など。

一度AccessのConversionToolkitのツールを使用してAccessデータベースを分析してみてはどうでしょうか。

参考URL:http://www.microsoft.com/japan/office/ork/2003/j …

この回答への補足

Accessの接続方式がRDOからADOに変更しました。約2’30”-->約5”になりました。

ありがとうございました。

補足日時:2005/11/24 08:52
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ConversionToolkitのツール、早速分析してみようと思います。
(VBの記述については、見直してみました。しかし、遅くなるような要因を見つけることができませんでした。)

お礼日時:2005/11/18 09:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!