• ベストアンサー

アクセス 置換 どちらが早いのでしょうか?

アクセスで一つのテーブルに対して30回更新クエリでデータを置換するのと ADOで30回データを置換するのでは、 どちらが早いのでしょうか? どちらもReplaceを使います。

質問者が選んだベストアンサー

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

> 30回 これは回数ではなく、1回で何件のレコードを更新するか・・・になりますか? 私の中での感覚だけですが(以下、裏付けなし) 1回で複数(30)レコードであれば、クエリの方が速そう。 クエリであれば、Access さんが中でゴニョゴニョやって終われるのに対して、 ADO では Recordset の形にして抽出されたデータを渡す処理を考えれば・・・ 1回で1件であれば、実際にやってみて・・・ その結果で、Access ではこういうもの・・・と判断していいのかも? 余談)時間測定してみた 測定ツールは以下のものを使用 VBAでミリ秒以下の高精度で処理時間計測 http://hatenachips.blog34.fc2.com/blog-entry-377.html ・環境 テーブル「T24」 フィールド:「an」(オートナンバ:主キー)「F1」(テキスト型) 上記テーブルに 5000 件のレコード(「F1」に "ABCDabcd" 同じもの) クエリ「Q_T24」  UPDATE T24 SET F1 = Replace(F1,"BB","CC"); ・記述 Public Sub test()   Dim rs As New ADODB.Recordset   Call SWStart   CurrentDb.QueryDefs("Q_T24").Execute   Call SWStop   Call SWShow("更新クエリ")   Call SWStart   rs.Open "T24", CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic   While (Not rs.EOF)     rs("F1") = Replace(rs("F1"), "BB", "CC")     rs.Update     rs.MoveNext   Wend   rs.Close   Call SWStop   Call SWShow("ADO") End Sub ・5回測定平均(私のPCでの雰囲気) 更新クエリ 160.0392 / ADO 197.0505 上記結果は、単にテーブル「T24」のレコード全部を対象にしましたが、実際には、 抽出条件等記述され、抽出にかかる時間云々・・・これらを加味する必要があると思います。 実際のテーブル、想定データ量、これらを使って検討/測定されればと思います。

eipchrucwizi
質問者

お礼

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

関連するQ&A