Uploaded image for project: 'S2Dao.NET'
  1. S2Dao.NET
  2. DAONET-81

Daoインターフェースの初期化時のデータベースからテーブル定義情報の高速化

XMLWordPrintable

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major Major
    • 1.3.15
    • Affects Version/s: 1.3.14
    • Component/s: S2Dao.NET
    • None

      S2Dao.NETでは、Daoインターフェースの初期化時にデータベースからテーブル定義情報を取得しているが、遅くなる場合があります。
      原因は、テーブル定義情報の取得時に、"SELECT * FROM table_name" SQL文を発行して全件問い合わせを実行しており、データ件数が増えてくると遅くなっていたためです。
      この現象は、接続先DBがSQLServer2005の場合、発生しませんが、他のDB(Oracleなど)では、発生します。

      この現象を解決するため、S2Dao.NETではテーブル定義情報のキャッシュ機能(http://s2dao.net.seasar.org/ja/cache_dataset.html)を用意していますが、データベースのテーブル定義に変更があった場合、テーブル定義情報のDataSetを更新する必要があるため手間がかかります。

      今回、Daoインターフェースの初期化時にデータベースからテーブル定義情報を取得する部分を改良された方がいたので、その方法を取り込ませていただくことにしました。(squikoleさん、ありがとうございます)

      DBFlute on JDBCでも同じことをやっているそうなので、S2Dao.NETに改良部分を取り込んでも問題ないと思われますが、念のため、S2Dao.NETでサポートしているDB全てで検証を行う予定です。

            Assignee:
            rmiyax rmiyax
            Reporter:
            rmiyax rmiyax
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: