C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 38 を表示中)
■19576 / )  Re[4]: 抽出データの多い時
□投稿者/ Algol (14回)-(2008/05/26(Mon) 11:51:46)
2008/05/26(Mon) 11:58:12 編集(投稿者)

No19537 (はつね さん) に返信
> ■No19533 (みちる さん) に返信
> >>実際に取得する前にSELECT COUNT(*)で件数を数えて判断。
>>
>>ごめんなさい、そのカウントを取る処理は件数が多くてもパフォーマンス的問題は
>>ないのでしょうか
>
> 何に比べてでしょうか?
> 取得していって、1000件超えたらエラーとかするのであれば、
> COUNT(*)で数えてしまった方が断然早いです。
>
>
>>あとご確認ですが検索結果からトップの100件のみ取り出す場合と
>>検索結果全てを取り出す場合、やはり速度的違いが断然あるもの
>
> 検索に10秒、100件取り出すごとに1秒かかると仮定してみましょう。
> 100件だけとりだすならば、10+1で11秒。
> 10000件とりだしたら、10+1*100で110秒。
>
> それだけじゃなくて、何百万件もあるデータをすべて取り出して、
> すべてWEBアプリで表示しようとしたらブラウザに画面が表示され
> るまでどれくらいまてばいいか想像つきません。
>
> 処理速度の違いを体感したいのならば、計測してみるのが1番ですよ。
> 特に何百万件もあるデータが手元にあるのならば、計測も楽ちんかと。
>

テーブルの件数を調べるだけなら、where に rownum <= 1001 とすると多少早くなるかと思います。

select count(*) from test where rownum <= 1001

こうすると1001件までしかサンプリングしません

# 5万件のテーブルの件数取得で 0.1秒くらいの差ってとこでした…(汗
# 5万件取得 0.156秒 / 1001件取得 0.047秒
返信 編集キー/


管理者用

- Child Tree -