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

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

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

Re[11]: 画面に表示させる際に表示速度を向上させるには


(過去ログ 26 を表示中)

[トピック内 14 記事 (1 - 14 表示)]  << 0 >>

■11543 / inTopicNo.1)  画面に表示させる際に表示速度を向上させるには
  
□投稿者/ ケツイ (1回)-(2007/12/17(Mon) 17:47:28)

分類:[ASP.NET (C#)] 

こんばんわ、ケツイと申します。

現在ASP.NET2.0を使い開発を行っています。

質問内容なんですが、FileUploadコントロールを使い、DB情報が書かれたテキストファイルを読み込み、その内容を元に
DBにアクセス・画面上のGridviewに表示させています。

表示させること自体に問題はないのですが、ファイルを読み込んで表示させるまでに若干時間がかかってしまいます。

このような場合、画面に表示されるまでの時間を短くするにはどのようにするのが一般的なのでしょうか?

よろしくお願いします。




引用返信 編集キー/
■11544 / inTopicNo.2)  Re[1]: 画面に表示させる際に表示速度を向上させるには
□投稿者/ Tom Yama (34回)-(2007/12/17(Mon) 17:53:41)
No11543 (ケツイ さん) に返信
速度を向上させる余地があると、お考えのようですが、その根拠は?
引用返信 編集キー/
■11545 / inTopicNo.3)  Re[2]: 画面に表示させる際に表示速度を向上させるには
□投稿者/ ケツイ (3回)-(2007/12/17(Mon) 17:59:51)
No11544 (Tom Yama さん) に返信
> ■No11543 (ケツイ さん) に返信
> 速度を向上させる余地があると、お考えのようですが、その根拠は?

単純な話ですが、上司にもっと早く出来ないか?と頼まれたからです。
引用返信 編集キー/
■11546 / inTopicNo.4)  Re[3]: 画面に表示させる際に表示速度を向上させるには
□投稿者/ Mr.T (146回)-(2007/12/17(Mon) 18:16:14)
Mr.Tです、こんにちは。

どこに一番、時間がかかっているのか、を調べないと、どこを早くするのか
ということが考えることはできません。
ボトルネックになっているのはどこですか?
それは、どのように処理されていますか?


引用返信 編集キー/
■11548 / inTopicNo.5)  Re[4]: 画面に表示させる際に表示速度を向上させるには
□投稿者/ Jitta on the way (58回)-(2007/12/17(Mon) 19:23:37)
2007/12/17(Mon) 19:28:01 編集(投稿者)

No11546 (Mr.T さん) に返信
> Mr.Tです、こんにちは。
>
> どこに一番、時間がかかっているのか、を調べないと、どこを早くするのか
> ということが考えることはできません。
> ボトルネックになっているのはどこですか?

どこ を例示する必要がある?

アップロード処理(通信回線)
ファイルを一旦保存する処理(ハードディスクの性能とか、パーティションの切り方とか)
保存したファイルをメモリ上に持ってくる処理(ハードディスク...とか、読み込みロジックとか)
データベースへの書き出し処理(テーブルの作成方法とか、ハードディスクの性能とか、書き出しロジックとか)
表示のための取得処理(SQLの書き方とか、データベースの構成とか、ロジックとか)
表示のための加工処理(ロジックとか、データ数とか)
HTMLの表示処理(ネットワーク トラフィックとか)
↑↑↑↑↑
これだけの事を、一度に尋ねている、という事を、わかってください。
書くのも大変ですが、理解して試すあなたはもっと大変ではないかと思います。
引用返信 編集キー/
■11561 / inTopicNo.6)  Re[5]: 画面に表示させる際に表示速度を向上させるには
□投稿者/ 渋木宏明(ひどり) (600回)-(2007/12/17(Mon) 23:31:21)
渋木宏明(ひどり) さんの Web サイト
> これだけの事を、一度に尋ねている、という事を、わかってください。

別に最初からそこまで細かく計測しなくてもいいでしょ?

まずは

・サーバへのファイル投入
・ファイル解析
・DB処理
・HTML送出

くらいの粒度でもいいから、実時間を計測してみないことには話が進みませんよ。

引用返信 編集キー/
■11570 / inTopicNo.7)  Re[6]: 画面に表示させる際に表示速度を向上させるには
□投稿者/ Jitta on the way (61回)-(2007/12/18(Tue) 07:37:11)
No11561 (渋木宏明(ひどり) さん) に返信
>>これだけの事を、一度に尋ねている、という事を、わかってください。
>
> 別に最初からそこまで細かく計測しなくてもいいでしょ?
>
> まずは
>
> ・サーバへのファイル投入
> ・ファイル解析
> ・DB処理
> ・HTML送出
>
> くらいの粒度でもいいから、実時間を計測してみないことには話が進みませんよ。
>

あ、ごめんなさい。
カッコの外は、計測ポイント。カッコの中は、そこが問題だったときに考えられる原因の意味でした。

たんに「遅い原因は?」と聞かれても、思い当たるポイントが多いので、ある程度は絞ってね、と。つか、そのポイントを見極められるのも、経験の賜物?
引用返信 編集キー/
■11572 / inTopicNo.8)  Re[7]: 画面に表示させる際に表示速度を向上させるには
□投稿者/ ケツイ (4回)-(2007/12/18(Tue) 09:03:04)
みなさん、いろいろとありがとうございます。

とりあえず、皆様のカキコを参考にいろいろ試してみたいと思います!
引用返信 編集キー/
■11573 / inTopicNo.9)  Re[7]: 画面に表示させる際に表示速度を向上させるには
□投稿者/ Mr.T (147回)-(2007/12/18(Tue) 09:18:24)
Mr.Tです、こんにちは。

No11570 (Jitta on the way さん) に返信
> ■No11561 (渋木宏明(ひどり) さん) に返信
> >>これだけの事を、一度に尋ねている、という事を、わかってください。

経験則的には、「ここか、こことか、あそこか?」ってのが
アタマをよぎるんですが、それは私の脳内だけの話で、予断にすぎません。
現段階で、予断でしかないのに、「具体的にこれはどうなの?あれはどうなの?」と聞くのは
いただけなかったので、あえてしてませんでした。

とはいっても、Jiitaさんより詳しくなくとも、渋木さんくらいには書けたかも
と反省。

というわけで、渋木さんの書いてある

>・サーバへのファイル投入
>・ファイル解析
>・DB処理
>・HTML送出

の計測をしてみるのが良いかと。

.NET Framework 2.0ならStopWatchクラスが使えて便利。
計測結果をResponse.writeするなりして、確認しましょう。
http://msdn2.microsoft.com/ja-jp/library/system.diagnostics.stopwatch(VS.80).aspx

渋木さんが挙げた各項目内で、速度向上する余地はあるかもしれませんが、
一番時間がかかっている箇所をまずは潰してしまう、ことを考えたほうが
よいかと思います。

引用返信 編集キー/
■11591 / inTopicNo.10)  Re[8]: 画面に表示させる際に表示速度を向上させるには
□投稿者/ ケツイ (5回)-(2007/12/18(Tue) 12:49:29)
No11573 (Mr.T さん) に返信
> Mr.Tです、こんにちは。
>
> ■No11570 (Jitta on the way さん) に返信
>>■No11561 (渋木宏明(ひどり) さん) に返信
>>>>これだけの事を、一度に尋ねている、という事を、わかってください。
>
> 経験則的には、「ここか、こことか、あそこか?」ってのが
> アタマをよぎるんですが、それは私の脳内だけの話で、予断にすぎません。
> 現段階で、予断でしかないのに、「具体的にこれはどうなの?あれはどうなの?」と聞くのは
> いただけなかったので、あえてしてませんでした。
>
> とはいっても、Jiitaさんより詳しくなくとも、渋木さんくらいには書けたかも
> と反省。
>
> というわけで、渋木さんの書いてある
>
> >・サーバへのファイル投入
> >・ファイル解析
> >・DB処理
> >・HTML送出
>
> の計測をしてみるのが良いかと。
>
> .NET Framework 2.0ならStopWatchクラスが使えて便利。
> 計測結果をResponse.writeするなりして、確認しましょう。
> http://msdn2.microsoft.com/ja-jp/library/system.diagnostics.stopwatch(VS.80).aspx
>
> 渋木さんが挙げた各項目内で、速度向上する余地はあるかもしれませんが、
> 一番時間がかかっている箇所をまずは潰してしまう、ことを考えたほうが
> よいかと思います。
>


StopWatchを使ってみたところ、DB処理の箇所で時間がかかっているようです。
このような場合は、SQLを見直すのが一番なのでしょうか?
引用返信 編集キー/
■11595 / inTopicNo.11)  Re[9]: 画面に表示させる際に表示速度を向上させるには
□投稿者/ Mr.T (148回)-(2007/12/18(Tue) 13:59:18)
2007/12/18(Tue) 14:00:15 編集(投稿者)

> StopWatchを使ってみたところ、DB処理の箇所で時間がかかっているようです。
> このような場合は、SQLを見直すのが一番なのでしょうか?

DBだ、という場合であれば、確かに発行しているSQLを見直すのが
直感的な方法です。

・DBの情報(Oracle?SQLServer?MySQL?)
・テーブル構成の情報(どんなテーブルやViewをみてるの?インデックスは? 全件で何件くらいあるん?)
・発行しているSQLの情報(どんなSQL書いてるの?)
くらいからスタートでしょうか。

あとは、もうちょっと外堀から埋める形ですが、
・Webサーバ、DBサーバの情報(ほんとーに求める速度が出せるマシン?)
・WebサーバとDBサーバとのネットワーク環境(10Baseとかつかってね?)
なんてのも気になるかもしれません。

ただ、たいていの場合は、チューニングや、SQLの書き方で
改善するパターンが多いでせう。(つか、ほとんどそうか)
引用返信 編集キー/
■11606 / inTopicNo.12)  Re[9]: 画面に表示させる際に表示速度を向上させるには
□投稿者/ Jitta on the way (63回)-(2007/12/18(Tue) 19:51:04)
No11591 (ケツイ さん) に返信

> StopWatchを使ってみたところ、DB処理の箇所で時間がかかっているようです。
> このような場合は、SQLを見直すのが一番なのでしょうか?

順番に、絞っていきましょう。SQL の実行に時間がかかっているなら、そうなります。しかし、接続に時間がかかっているのかもしれません。あるいは、データをメモリに展開するところかも。

ループなどのブロックや、極端な場合1ステップにまで計測範囲を狭め、それから対策を考えます。

DB処理といわれても、私たちにはどんなことをしているのかわかりません。
先の3つくらいにまで、分解して、もう一度計測してみてください。
引用返信 編集キー/
■11612 / inTopicNo.13)  Re[10]: 画面に表示させる際に表示速度を向上させるには
□投稿者/ やじゅ (25回)-(2007/12/18(Tue) 23:37:25)
やじゅ さんの Web サイト
> ■No11591 (ケツイ さん) に返信
>

ASP.NET2.0なら、表示件数が多い場合はページ表示方式として、
DB抽出段階で1ページ20件ごとにするなどすれば、表示速度は
上がると思います。
そうすると、仕組み事態を変更する必要があるのかもしれませんが
質問者の情報が少ないので、一般論です。
引用返信 編集キー/
■11817 / inTopicNo.14)  Re[11]: 画面に表示させる際に表示速度を向上させるには
□投稿者/ SQL2年生 (1回)-(2007/12/21(Fri) 16:40:32)
No11612 (やじゅ さん) に返信

MS−SQLでの私の失敗

SQLクエリに、必要も無いのに、

SELECT * FROM data WHERE page LIKE '1'

とやっていたことがありました。
(検索が必要だったわけではありません。^^:)
データが1万行を越えた頃、お客様から、DB遅せーーとクレームが来ました。
SQL使いの人たちには常識のLike退治をしていなかったのが原因でした。


LIKE を = にすると

SELECT * FROM data WHERE page = '1'

データの範囲が限定されますので、抽出速度が
あがります。

データの抽出範囲を出来るだけ限定できるように
クエリを作成するのも効果があるかも知れません。
他にも、チューニング方法があるようですので
SQL チューニング などで検索されてもいいかと
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -