- PR -

【C#.NET】パフォーマンスを改善したいです。

投稿者投稿内容
えムナウ
大ベテラン
会議室デビュー日: 2004/06/10
投稿数: 187
お住まい・勤務地: 東京
投稿日時: 2004-07-07 16:33
3層構造のアプリケーションサーバー(Webサービス)なら、その処理ではユーザーにデータを見せる必要ないと思いますので、
次回設計時はデータセットという機能は多いが遅い物を使わずにSqlDbCommandとかストアドプロシージャとか単純で速いものを使ったほうがいいと思います。

#パフォーマンスでユーザーからクレームが来そうな遅さでしたら、
#今からでも設計しなおしたほうが良いかもしれません。
Micky
大ベテラン
会議室デビュー日: 2002/09/04
投稿数: 137
投稿日時: 2004-07-07 17:34
Mickyでございます。
お世話になっております。

基本的には、NAL-6295さんの方法と同じなんですが、
変更データごとに抽出するのなら、
DataSet.GetChanges メソッドを使うなんて方法もありますよ。
引数に、DataRowStateが指定できます。


効率の話なのに、実際に比べたわけではなくて恐縮なのですが、
一応御参考までに…(^^;


[ メッセージ編集済み 編集者: Micky 編集日時 2004-07-07 17:40 ]
あき
ベテラン
会議室デビュー日: 2003/07/23
投稿数: 72
投稿日時: 2004-07-07 20:26
じったぼんさん、えムナウさん、なちゃさん、NAL-6295さん、Mickyさん
いろいろなアイディアありがとうございました。

SELECTとUPDATEを違うデータセットに分けたところ、劇的ではありませんが、効果がありました。UPDATEのデータセットは変更項目のみですから、これも効率改善の一助になっていると思います。ちなみに、データベース操作をブラックボックス化しているので、DataViewRowStateやDataSet.GetChangesが使えませんでした。

「機能が多ければ遅いし、単純であれば速い」は納得です。当たり前のことですが、今回の件で、再認識できました。でも、データセットは想像してたより重いです。メモリ上ですからもう少し速くてもいいんじゃないかと思いますが。。。

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