- - PR -
ODP.netのDB検索速度の差異について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-11-06 09:28
VB.netで作成されたアプリケーションの性能テストを行っています。
DBからデータを取得する部分(サーバ側のPL/SQLから取得)でODPを使用している のですが、1回目の検索と2回目の検索でデータ取得にかかる時間に随分差があ ります。 DBのキャッシュにのった事が原因かと思い、キャッシュされた状態とされていな い状態でPL/SQLのみの実行時間を計測してみたのですが、AP側から取得にかかる 時間差に比べると差がなく、DBキャッシュが原因ではなさそうでした。 データ取得時にDataSet型オブジェクトにデータを格納するのですが、一度取得 したデータはDataSet型にキャッシュされたままになるのでしょうか? ※DataSet取得はOracleDataAdapter.fillで実行しています。 | ||||||||
|
投稿日時: 2006-11-06 10:17
どの部分で時間を計測しましたか? 一発目は接続プールに空きが無くて実際にOracleに接続に行っている時間かも知れません。 | ||||||||
|
投稿日時: 2006-11-06 13:49
返信ありがとうございます。
DataSet取得部分(OracleDataAdapter.fill)です。 その前にコネクションの取得を行っているので、接続に行っている時間ではないと 思っているのですが。 補足ですが、実行前にOracleCommandにFetchSizeの設定を行っています。 FetchSizeには取得するデータ容量に見合った値を設定しているはずなのですが、そ の設定が間違っているとレスポンスに影響するのでしょうか。 | ||||||||
|
投稿日時: 2006-11-06 14:10
コネクションの取得というのは何ですか? 渡されたコネクションが Open されていなければ Fill が呼び出された時に Open しに行くとおもうのですが、 一度 OracleCommand を使って時間測定をしてみてはどうでしょうか?
FetchSize に関しては @IT のこの記事が詳しく書かれています。 http://www.atmarkit.co.jp/fdb/rensai/odpdotnet03/odpdotnet03_2.html [ メッセージ編集済み 編集者: かるあ 編集日時 2006-11-06 14:17 ] | ||||||||
|
投稿日時: 2006-11-06 14:45
少し古い話ですが、2003年のdotNet Magazine 2月号で特集がありました。
ご参考まで。 _________________ -------------------------------------------- HIRO's.NET PowerShell,VB.NET,C#のTipsを掲載しています HIRO's.NET Blog PowerShell,VB.NET,C#を中心とした技術ネ | ||||||||
|
投稿日時: 2006-11-06 22:00
$ORACLE_HOME$/network/admin/sqlnet.ora 内の、SQLNET.AUTHENTICATION_SERVICES の値が、(NTS) になっていたりするとか? →(NONE) にすると早くなる。
_________________ | ||||||||
|
投稿日時: 2006-11-07 11:53
[quote]
コネクションの取得というのは何ですか? 渡されたコネクションが Open されていなければ Fill が呼び出された時に Open しに行くとおもうのですが、 一度 OracleCommand を使って時間測定をしてみてはどうでしょうか? [quote] 見直してみたのですが、既にOpenはされている状態でした。 皆様情報ありがとうございます。もう少し調べてみます。 |
1