rs.Rcordcountは必ずしも遅くなかった

rs.recordcountが遅いかもの件です
5万件ぐらいのテーブルで確認してみました。
where条件にもよるのでしょうけど

rs.Open “select id from テーブル where条件”, cn, adOpenStatic, adLockOptimistic
Debug.Print rs.RecordCount

rs.Open “select id from テーブル where条件”,cn, adOpenStatic, adLockOptimistic
rs.Move first
i = 1
Do Until rs.EOF
rs.MoveNext
i = i + 1
Loop
Debug.Print i

はrs.recordcountの2馬身ぐらいで勝ちでしたが

rs.Open “select id from テーブル where条件”, cn, adOpenStatic, adLockOptimistic
Debug.Print rs.RecordCount

rs.Open “select id from テーブル where条件”,cn, adOpenForwardOnly, adLockReadOnly
rs.Move first
i = 1
Do Until rs.EOF
rs.MoveNext
i = i + 1
Loop
Debug.Print i

はloopの圧倒的勝利でした。

rs.addnew rs.update など流れの中で件数取得ならrecordcount
件数取得だけが目的ならloopということかな?

“rs.Rcordcountは必ずしも遅くなかった” への1件の返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です