DATAGRIDでの高速化対応の方法!!!


シュー  2004-01-09 21:37:29  No: 111164

DATAGRIDについての質問です!!

DATAGRIDにDBからデータを表示する際に、項目数・レコード数が数多く
存在した場合、非常に重く感じるのですが(コーディングにも問題あり)、
高速化の対応をする上で、参考となる方法を御存知の方がいらっしゃれ
ば、教えていただきたいのですが・・・

よろしくお願いします。


岡田 之仁  2004-01-09 21:41:59  No: 111165

表示したいレコードを少なくさせるのも手段のひとつですが・・・

簡単な方法としては、DataGridコントロールを非表示にしてから
データをロードさせ、終った後に表示させる・・・

これでかなりの高速化が可能だと思います。

あとは、SQL文いじくって、ページング的インターフェースを
導入して、20件づつページングさせるかと・・・

以上。


シュー  2004-01-09 22:03:17  No: 111166

岡田 之仁さん回答ありがとうございます。

内容は、理解しました。が、
わがままを言えば、記入内容以外に考えられる
他の方法など、ありましたら、あるだけお教えください。

申し訳ございません。


岡田 之仁  2004-01-10 00:41:10  No: 111167

まず、速度的な問題ですが・・・

ADO経由だと思いますが、SQL文を実行してレコードセット
を得られるまでの時間は?件数は?

該当マシンでの、コントロールを表示のままでの実際のデータの
表示に関わる時間は?

DataGridの表示が遅いのは解りますが、遅い原因が全てGridの問
題なのかどうか・・・それ以外の部分でも、時間的要素として、
削減可能であれば、チューニング可能かと・・・

ちなみに、DBは何ですか?
ADOのバージョンとか・・・VB6ですか?VB.NET?

以上。


シュー  2004-01-10 03:20:58  No: 111168

回答ありがとうございます。

確かにおっしゃるとおりですね・・・
コーディングの内容も問題があるのは確かです。
ちなみに、詳細な時間は、計測していないので不明確ですが、
データは、100項目の10万レコードです。(テスト的に作成)

ODBC経由の、VB.NETで作成しています。
DBは、Cacheです。


岡田 之仁  2004-01-10 05:14:02  No: 111169

えっ!?
その10万レコードと言うのは、DB中のレコード数ですよネ?!
レコードセットとして取得したレコード数ではないですよネ?

ODBC経由とありますが、VB.NETであれば、マネージド
のADO.NETでのアクセスの方が高速になるはずです。

ちなみに、DBエンジンは何をご使用ですか?

なんかDataGridの高速化と言うよりは、もっと違うところにキー
があるようですが・・・

以上。


シュー  2004-01-11 22:02:24  No: 111170

>その10万レコードと言うのは、DB中のレコード数ですよネ?!
>レコードセットとして取得したレコード数ではないですよネ?

  DB中・レコードセットともに、10万です。
  ちなみに、一度に10万件のレコード表示をするのは良いとは思いま
  せんが、テスト的に行っています。

>ちなみに、DBエンジンは何をご使用ですか?
  
  Cache'(インターシステムズ社)

>なんかDataGridの高速化と言うよりは、もっと違うところにキー
があるようですが
  
  例えば、どのようなところに問題があるのでしょうか???
  お教えください。

ADO経由での接続方法が、少し知識不足だったかもしてませんので、
調べてみます。

度々のご回答ありがとうございます。


岡田 之仁  2004-01-21 20:16:14  No: 111171

しばらく経過してしまっていました・・・

やはり取得件数が10万件だったのですネ!
メモリとCPUの無駄使いです。

データベースから読み出して、メモリ上のレコ−ドセットに
格納するのにも時間がかかりますし、それをDataGridと言う
別の表示用リソースに転送・・・メモリを2倍使ってしまう
とは言いませんが、搭載メモリの少ないマシンでは、極端に
パフォーマンス低下が発生したり、ハングったりします。

やはりここは、100分の1程度に減らして、1000件上限に
なるようにSQL文を調整されては?

10万件のデータを、ホイホイファイルリソースとメモリリ
ソースの間を、行ったり来たりさせるようなシステムは現実
的ではないと思いますが・・・

ご検討下さい。

以上。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加