| 2004年1月15日
『どっとねっとと雑多な日々 19』
皆さん、DataSet を使ってますか?
.NET Framework の System.Data 名前空間にある DataSet は非常に便利なク
ラスです。データベースのデータや XML データを取り扱える汎用的なクラス
で、非常によく使われていることだと思います。
ただ、この DataSet を使う局面を良く考えないと常に負荷が高いシステムが
出来上がってしまいます。
DataSet には状態を保持する機構があります。
この機構は非常に便利ですが、Windows Form の DataGrid などに連結しなけ
れば、意外と必要ないケースが多いです。
Windows Form の UI クラスに限らず ASP.NET の UI クラスも DataSet 以外
に DataReader を DataSource にできます。
また、ASP.NET では、基本的にリアルタイムでのデータの更新というものが存
在しないので、基本的には DataReader だけで処理ができます。
なぜ、このようなことを書くかというと、とある Web システムでの話で、同
時接続数がそんなにないのに、システムが遅いという話がありました。
よく調べてみると、DataSet と DataAdapter を使って、コード記述量を減ら
して生産性を上げたかったという背景がありました。
DataSet は状態を維持する機構が存在するので、元のデータよりも大きくなると
いう傾向があります。
ですので、必要以上にシステムのメモリを圧迫していたということでした。
その改善には DataReader を使うように変更したら、かなり改善したということ
です。
このような事例がありますので、DataSet を使う局面をなるべく減らし、システ
ムのパフォーマンスを上げるように DataReader を使った開発をしてみてくださ
い。
|