- PR -

Npgsqlで取得したDataTableのアクセス速度が遅い

1
投稿者投稿内容
sunn
会議室デビュー日: 2007/12/15
投稿数: 2
投稿日時: 2007-12-15 03:27
いつも皆様の記事を拝見させておりますが、今回初めて投稿します。

300件程度のデータをpostgresよりデータを取得するために、
Npgsqlを使用してDataAdapterからDataTableをFillし、
DataTableよりDataTableReaderで、先頭から順読みをしながら、
取得したデータをテキストボックスに1レコード1行で展開しています。

上記処理のうち、テキストボックスへ展開するための順読みの速度が非常に
遅く、300件のデータをすべて展開するまでに15秒ほど掛ります。

取得したDataTableをDataGridViewのDataSourceに指定すれば
ほとんど待ち時間無しで表示される事から、データの取得ではなく、
取得後の展開の処理がネックとなっているかと思うのですが、
DataTableReaderからの読み込みの速度を上げる方法、
あらかじめ設定しておくプロパティなどがあるものなのでしょうか?

発行するSQL自体は、1つのテーブルから2項目を取得だけの
シンプルなものです。
マシンスペック的には重大な欠点となりえるような点はないかと
思われます。

動作環境は
WinXP Pro SP2
Visual Studio 2005
.Net FrameWork 2.0
です。

過去に同様のケースを解消された方、DataTableからの取得の定石等、
ご存知の方がおられましたら、教えていただけたらと思います。
こあら
大ベテラン
会議室デビュー日: 2007/06/26
投稿数: 157
投稿日時: 2007-12-15 10:00
> テキストボックスへ展開するための順読みの速度が非常に遅く

テキストボックスへの展開(値をセット)にどのくらいかかっているか?
順読みにどのくらいかかっているか?きちんと調べてみましたか?

例えば、1つのテキストボックスに値をセットするたびに再描画していたら、
とてつもなく遅そうですよね。
(自分にとって)意外なところで時間をくうから「遅い」と感じるのだと思います。
sunn
会議室デビュー日: 2007/12/15
投稿数: 2
投稿日時: 2007-12-15 11:34
こあら様
ご返信ありがとう御座います。
ただいま社におりませんので、正確な秒を計測する事は
できませんが、後ほど試してみます。

最終的な目的としては、テキストボックスではなく、
2次元配列に展開したいため、それで試してみましたが、
速度に大きな差は無かったと思います。
こちらについても、時間の計測を試してみたいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)