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

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

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

Re[1]: トレンドグラフ作成


(過去ログ 48 を表示中)

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

■26491 / inTopicNo.1)  トレンドグラフ作成
  
□投稿者/ VB3ヶ月初心者 (1回)-(2008/10/11(Sat) 01:15:54)

分類:[VB.NET/VB2005 以降] 

 pictureboxにグラフを書くプログラムを書こうとしています。
一秒周期でDB(MSアクセス)にデータを保存し、保存されたデータをトレンド
グラフで表示するようにとの仕様で、最大一週間のデータをグラフで表示するプログラムを、
VB2005で組む予定ですが、(VBしかプログラムを組んだことがないため)2,3秒で表示することは可能
なんでしょうか??表示速度を求められるようなので、VBでは厳しいのでしょうか?
漠然とした質問ですがご教授お願い致します。







引用返信 編集キー/
■26494 / inTopicNo.2)  Re[1]: トレンドグラフ作成
□投稿者/ 初心者 (152回)-(2008/10/11(Sat) 10:10:35)
60(秒)*60(分)*24=86400(1日)
86400(1日)*7=604800(1週間)

どんなデータか知りませんが、グラフ描画の部分ではなくDBアクセス周りだけで2〜3秒
以上かかっちゃうんじゃありませんか?

引用返信 編集キー/
■26498 / inTopicNo.3)  Re[1]: トレンドグラフ作成
□投稿者/ Jitta (523回)-(2008/10/11(Sat) 21:20:59)
Jitta さんの Web サイト
No26491 (VB3ヶ月初心者 さん) に返信
>  pictureboxにグラフを書くプログラムを書こうとしています。
> 一秒周期でDB(MSアクセス)にデータを保存し、保存されたデータをトレンド
> グラフで表示するようにとの仕様で、最大一週間のデータをグラフで表示するプログラムを、
> VB2005で組む予定ですが、(VBしかプログラムを組んだことがないため)2,3秒で表示することは可能
> なんでしょうか??表示速度を求められるようなので、VBでは厳しいのでしょうか?
> 漠然とした質問ですがご教授お願い致します。
>
 VB4 以前はインタープリタだったので遅かったでしょうが、それより後はネイティブ コンパイルされていますよ。
もっとも、VB.NET からは共通言語になって、そこから実行時にコンパイルですけど。

 で、Access を使うということですが、Access が1秒ごとにデータを格納するという仕様に耐えられるのでしょうか?そちらをまず心配します。
データの取り方や、グラフの描き方については、何とかなるかもしれませんし、何ともならないかもしれません。
それは、全体の仕様と相談です。
引用返信 編集キー/
■26499 / inTopicNo.4)  Re[2]: トレンドグラフ作成
□投稿者/ やじゅ (686回)-(2008/10/12(Sun) 03:33:45)
やじゅ さんの Web サイト
No26498 (Jitta さん) に返信
> ■No26491 (VB3ヶ月初心者 さん) に返信
>  で、Access を使うということですが、Access が1秒ごとにデータを格納するという仕様に耐えられるのでしょうか?そちらをまず心配します。

DBへのデータ登録は、データをある程度メモリへ退避しておき、
データが溜まったところで、マルチスレッドでDBにデータ登録する
ようにするといいかもね。
引用返信 編集キー/
■26503 / inTopicNo.5)  Re[1]: トレンドグラフ作成
□投稿者/ オショウ (40回)-(2008/10/12(Sun) 07:22:08)
> 一秒周期でDB(MSアクセス)にデータを保存し、保存されたデータをトレンド
> グラフで表示するようにとの仕様で、最大一週間のデータをグラフで表示するプログラムを、
> VB2005で組む予定ですが、(VBしかプログラムを組んだことがないため)2,3秒で表示することは可能
> なんでしょうか??表示速度を求められるようなので、VBでは厳しいのでしょうか?
> 漠然とした質問ですがご教授お願い致します。

  ええ〜と・・・
  実際のDBの大きさがどの程度まで膨らむか。MDBファイルって、100〜200MB程度
  まで増えると、よく壊れると聞いたことがあります。また私も昔、180MB程度までデータ
  をためたら、壊れました・・・

  それと保存も1秒毎だと、データ容量が増えるに従って結構厳しくなってくると思います。
  保存に1秒近く消費すると、トレンドグラフを書く為の集計SQLを発行したら、多分、破綻
  するのでは?MDBで、SELECT文のNOLOCKが効果があったかは未確認です・・・

  SQL Server Express で、OLAP使えたのなら、OLAPのキューブ設定でトレンドに書きたい集計
  を先にやらせれば、トレンドで欲しい場合、迅速にデータ(集計結果)が取れると思います。

以上。参考まで・・・
引用返信 編集キー/
■26514 / inTopicNo.6)  Re[2]: トレンドグラフ作成
□投稿者/ たくボン (53回)-(2008/10/12(Sun) 23:51:10)
No26494 (初心者 さん) に返信
> 60(秒)*60(分)*24=86400(1日)
> 86400(1日)*7=604800(1週間)

おそらく60万件のデータすべてをグラフにするんじゃないと思うので、周期毎の平均とかを取ると思うのでそこはビューにしておけばある程度は負荷を減らすことが可能ですが、答える側もどれくらいのデータ量か予測しにくいですね。

経験から言えば、そのようなシステムにAccessを使用するのはお勧めできませんね。MSDEとSQL Server2005 Expressとかの方がまだ良いかと。。。

単純に言えばトレンドグラフの描画は、x,y軸の描画、複数の折れ線だと思うので、データ集計と座標軸への変換が中心になると思います。リアルタイムのグラフではなく履歴のトレンドグラフだと思うので、1日とか1時間とかで集計させて、どこかに保存しておくのも速度アップさせる手段ですね。
引用返信 編集キー/
■26515 / inTopicNo.7)  Re[3]: トレンドグラフ作成
□投稿者/ やじゅ (690回)-(2008/10/13(Mon) 03:31:47)
やじゅ さんの Web サイト
> 経験から言えば、そのようなシステムにAccessを使用するのはお勧めできませんね。
> MSDEとSQL Server2005 Expressとかの方がまだ良いかと。。。
>

お手軽なDBといえば、SQL Server Compact 3.5って選択もあります。但しVB2008以降
MDBを使う理由が手軽さだとするなら、お勧めします。
http://www.atmarkit.co.jp/fdotnet/joyofprogram/20080701devssce/devssce_02.html

環境が決められてるなら別として、VB2008が出てるのにVB2005を使うことないのにー
引用返信 編集キー/
■26517 / inTopicNo.8)  Re[4]: トレンドグラフ作成
□投稿者/ やじゅ (692回)-(2008/10/13(Mon) 04:24:10)
やじゅ さんの Web サイト
折れ線グラフってことなら下記を使うのも一考かと・・・
オープンソースのグラフ・コントロール「ZedGraph」を使う
http://www.atmarkit.co.jp/fdotnet/vblab/extcompo_02/zedgraph_01.html
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -