[seasar-dotnet:773] Re: S2DAO.NET:Oracle10g への外だし SQL の実行が遅いように見える
小林貴生
[E-MAIL ADDRESS DELETED]
2008年 2月 6日 (水) 15:58:47 JST
お手数を掛けております。
小林です。
> 宮城です。
>
> 久保さんもかかれていましたが、
> 同じSQLを2回実行してみて1回目だけが遅いかどうか確認していただけますか。
>
> 遅い場合、メタデータの取得に時間がかかっていることになります。
> (おそらくメタデータの取得処理時に全行取得処理が走っているためです)
> この現象は、
> https://www.seasar.org/issues/browse/CONTAINERNET-42
> で報告されていますが、現在未対応の状態です。
今、私の開発環境上では、
・1回目 遅い(5秒くらい)
・2回目以降 速い(1秒くらい)
が確認できていまして、まさに上記ご指摘の通りでした。
> [修正後]
> // テーブル定義情報を取得するためのSQLを作成する
> string sql = "SELECT * FROM " + tableName + " WHERE rownum <= 1";
を行ったところ、確かに1回目も速くなりました。半分以下の数値になりました。
と言う事で、検証機の環境で起こっている「毎回コンスタントに遅い」の
現象は、2回目以降のログしか見ていなくて、それがコンスタントに遅いのでは?。
と考えています。
システム要件に掛かってくるので、おいそれと変更は出来ないのですが、
データプロバイダを
.NET Framework Data Provider for Oracle
↓
.NET Framework Data Provider for OLE DB
に代えたところ、全般的に速くなりました。
と言う事で、ちょっとプロバイダを疑ってみる事にします。
ご指導いただきまして、ありがとうございました。
以上、よろしくお願いいたします。
小林
seasar-dotnet メーリングリストの案内