[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 メーリングリストの案内