出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

レコードセット後のMoveFirstにかかる処理時間   雪見さん [2002/11/15 12:57:37] [2934]
  Re:レコードセット後のMoveFirstにかかる処理時間   暇人さん [2002/11/15 13:37:01] [2937]
    Re:レコードセット後のMoveFirstにかかる処理時間   雪見さん [2002/11/15 13:54:44] [2938]
      Re:レコードセット後のMoveFirstにかかる処理時間   暇人さん [2002/11/15 14:16:45] [2939]
        Re:レコードセット後のMoveFirstにかかる処理時間   雪見さん [2002/11/15 14:49:13] [2940]
          Re:レコードセット後のMoveFirstにかかる処理時間   暇人さん [2002/11/15 15:06:33] [2941]
            Re:レコードセット後のMoveFirstにかかる処理時間   雪見さん [2002/11/15 15:33:10] [2942]
  Re:レコードセット後のMoveFirstにかかる処理時間   暇人さん [2002/11/15 16:15:01] [2943]
    Re:レコードセット後のMoveFirstにかかる処理時間   雪見さん [2002/11/15 16:34:49] [2946]
      Re:レコードセット後のMoveFirstにかかる処理時間   暇人さん [2002/11/15 17:08:49] [2948]
        Re:レコードセット後のMoveFirstにかかる処理時間   雪見さん [2002/11/15 17:22:10] [2949]
          Re:レコードセット後のMoveFirstにかかる処理時間   暇人さん [2002/11/18 10:55:17] [2956]

[2934] レコードセット後のMoveFirstにかかる処理時間
投稿者:雪見さん 2002/11/15 12:57:37
いろいろなパターンで処理時間を測定していて、「レコード数が同じ場合(where句が同じ)、列数が多い(select項目が多い)時の方が処理時間が短い」という結果になってしまいました。

処理時間に差が出来る原因は以下の1行なのですが、何か考えられる
理由や原因などありますでしょうか?
理由が判らず悩んでおります。
よろしくお願いいたします。

Set RS = ConDB.execute(sql)
If Not RS.EOF Then
aaa = second(time)
RS.MoveFirst  ←ここ
bbb = second(time)
 ・・・・・


[2937] Re:レコードセット後のMoveFirstにかかる処理時間
投稿者:暇人さん 2002/11/15 13:37:01
> いろいろなパターンで処理時間を測定していて

いろいろじゃわかりません。具体的に一つ一つ述べてください。

>、「レコード数が同じ場合(where句が同じ)、列数が多い(select項目が多い)時の方が処理時間が短い」という結果になってしまいました。
>

 どのようなSQL文を組まれたのか教えてください。

[2938] Re:レコードセット後のMoveFirstにかかる処理時間
投稿者:雪見さん 2002/11/15 13:54:44
ご返事ありがとうございます。

>  どのようなSQL文を組まれたのか教えてください。

1.select aa,bb,cc,dd,ee,ff,gg from T1 where dd between (A and B)
2.select aa,bb,cc,dd,ee,ff,gg,hh,ii,・・・ 以降は同じです

T1は結合したビューを使用しています。

色々なパターンというのはselect句やwhere句を変更してという
意味になります。今回、疑問が湧くことになった背景として記述
しました。

よろしくお願いいたします。

[2939] Re:レコードセット後のMoveFirstにかかる処理時間
投稿者:暇人さん 2002/11/15 14:16:45
レスポンスタイムをどのように測定したのか気になりますが
まあそれはそれとして・・・
 ビューの定義の仕方によっては、呼び出したフィールド
によってレコード数が変わる事は十分考えられます
呼び出したレコードをカウントして、表示させてみてください。

[2940] Re:レコードセット後のMoveFirstにかかる処理時間
投稿者:雪見さん 2002/11/15 14:49:13
ご返事ありがとうございます

> レスポンスタイムをどのように測定したのか気になりますが
> まあそれはそれとして・・・
>  ビューの定義の仕方によっては、呼び出したフィールド
> によってレコード数が変わる事は十分考えられます
> 呼び出したレコードをカウントして、表示させてみてください。

レコードカウントは同じです。
結果を並べて比較しても件数は同じで横の出力項目だけが指定した
通り、異なりました。
レスポンスの計測は、MoveFirstの前後に現在の時間を拾って計測
しました。

よろしくお願いします。

[2941] Re:レコードセット後のMoveFirstにかかる処理時間
投稿者:暇人さん 2002/11/15 15:06:33
時間差というのはどの程度でしょうか?
数秒ぐらいならNETワークの状態。サーバーの状態等によって
同じコマンドでも結構差がでますが・・・
いつ計測しても、何回計測してもそうなるのですか?

[2942] Re:レコードセット後のMoveFirstにかかる処理時間
投稿者:雪見さん 2002/11/15 15:33:10
ご返事ありがとうございます。

> 時間差というのはどの程度でしょうか?
> 数秒ぐらいならNETワークの状態。サーバーの状態等によって
> 同じコマンドでも結構差がでますが・・・
> いつ計測しても、何回計測してもそうなるのですか?

差は半分くらい20秒と10秒です。
再現性があり、何度測定しても1〜2秒の差はありますが、必ず
select項目数の多い方が半分くらいの修理時間になります。

よろしくお願いいたします。

[2943] Re:レコードセット後のMoveFirstにかかる処理時間
投稿者:暇人さん 2002/11/15 16:15:01
ごめんなさい。もっと早く聞くべきことを忘れていました。
 使用したデータベースとそのバージョン
 接続方法や環境等を、教えてください。

[2946] Re:レコードセット後のMoveFirstにかかる処理時間
投稿者:雪見さん 2002/11/15 16:34:49
こちらこそ申し訳ありませんでした。
データベースはMSDE2000で、1台のサーバでIIS,MSDEとも稼動させて
います。今回測定しているのはASPのコード1行のみの処理部分を測定
しておりますので、ネットワークなどは影響しないと思っております。
よろしくお願いいたします。

[2948] Re:レコードセット後のMoveFirstにかかる処理時間
投稿者:暇人さん 2002/11/15 17:08:49
ビューT1について質問です
 元テーブルで主キーの設定されているフィールドはどれでしょうか
 グループ化などは成されているのでしょうか

[2949] Re:レコードセット後のMoveFirstにかかる処理時間
投稿者:雪見さん 2002/11/15 17:22:10
ご返事ありがとうございます。


select aa,bb,cc,dd,ee,ff,gg from T1 where dd between (A and B)

元テーブルでの主キーはaaとbbの複合キーです。
これがそのままビューでも一意になります。
グループ化ではありませんが、ビューでは結合先の複数レコードをleft inner join onで横に並べています。

よろしくお願いいたします。

[2956] Re:レコードセット後のMoveFirstにかかる処理時間
投稿者:暇人さん 2002/11/18 10:55:17
レスが遅くなりましてすみません。

> Set RS = ConDB.execute(sql)
> If Not RS.EOF Then
> aaa = second(time)
> RS.MoveFirst  ←ここ
> bbb = second(time)
この
MoveFirstメソッドは正常に作動してますでしょうか
.execute()で呼び出された場合。デフォルトでカーソルタイプ
が前方スクロールタイプになるはずなのですが・・・
 後主キーのデータ型は何ですか?



TreeBBS For ASP V.0.1.3
Program By YasNet