none
データベースアクセスの処理性能について RRS feed

  • 質問

  • Windows7

    Visual Studio 2010 Express Edition

    SQL Server 2008 R2 Express Edition を使っています。

     

    ASP.NET (C#) で作成したアプリケーションから、データベースアクセスを

    行う際、SqlConnection, SqlAdapter, SqlParameter などを使うことに

    なるかと思います。

    基本的には、これらのクラスオブジェクトが持っているプロパティに対し、

    厳密に設定を行う方法と、ある程度クラス側で自動で判断してもらう方法が

    あるかと思いますが、例えば 10 万件程度のデータに対して検索や更新を

    行う場合には、どちらの方が早く処理されるものでしょうか。

     

    例えば、SqlParameter の Size や Direction は、必ずしもプログラマが

    設定する必要があるものではない(と思っています)が、データベース側の

    仕様に合わせて、設定したほうが、速く処理できる…なんて話はあるのでしょうか。

     

    コーディングによって、データアクセス処理を速くするコツなどありましたら

    教えていただけないでしょうか?よろしくお願いします。

    2010年9月4日 1:56

回答

  • その辺りのパラメーターによる差異は微々たるものです。

    それよりもテーブル設計がしっかりしているか、適切なクエリを発行しているか、大量のデータをアプリケーションが取得するならDBからの読み出しおよび読みだした処理内容、大量の更新処理を行うなら必要に応じてストアドプロシージャを使用する、などなど、もっと別のアプローチをとるべきです。

    2010年9月4日 3:10

すべての返信

  • その辺りのパラメーターによる差異は微々たるものです。

    それよりもテーブル設計がしっかりしているか、適切なクエリを発行しているか、大量のデータをアプリケーションが取得するならDBからの読み出しおよび読みだした処理内容、大量の更新処理を行うなら必要に応じてストアドプロシージャを使用する、などなど、もっと別のアプローチをとるべきです。

    2010年9月4日 3:10
  • 佐祐理さん、コメントありがとうございます。

    同じ時間をかけるなら、プログラム側ではなく設計に時間をかけるべき…と、

    解釈をさせていただきました。

    たしかに、仰る通りだと思います。プログラム側でデータ処理を速くできるなら

    多少コード量が多くなったとしても、実装したいと考えたので、お伺いした

    次第です。

    頑張りに見合うだけの成果が出にくいようなら、少ないコード量で実装する

    方向で検討してみたいと思います。ありがとうございました。

     

     

    2010年9月4日 4:34