- PR -

SQL(Oracle)とJDBC(Java)の細かいパフォーマンスの話

1
投稿者投稿内容
あぶぽん
大ベテラン
会議室デビュー日: 2005/10/20
投稿数: 205
投稿日時: 2006-08-24 11:58
あぶです.

細かい話ですが, 少し気になったのでスレッド作りました.

JDBCで検索して値を取り出す際, NUMBER型のフィールドをどこで
文字列に直すのが早いでしょうか.

 1. SQLでTO_CHAR関数で変換してからJDBCでgetString()する

 2. JDBCでgetInt()してからString.valueOf()で変換する

※ DBサーバとAPサーバの性能は同じと仮定する

・J2SE 1.3
・Oracle8i Database
・Oracle JDBC Driver

小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2006-08-24 12:39
1の方が早いような気がします。

ですが、数値のString化なども含め、私の場合はなるべく2の方式
にするようにしています。理由は、APサーバ側の負荷が上がるように
しておけば、APサーバのクラスタ化で改善できるので。Oracleでクラスタ
化すると、ハードも含めてコストが高いので・・・。
あぶぽん
大ベテラン
会議室デビュー日: 2005/10/20
投稿数: 205
投稿日時: 2006-08-24 14:11
愚問に名答でした.
感服です.
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2006-08-24 14:18
そんな些細な事を気にされるよりも、
ほんの少し効率のよいSQLを書いた方が遥かに効果がありますよ。
型変換の処理なんて実行計画の影響に比べるとないも同じなわけで。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2006-08-24 15:12
愚問ではないですよ。
時々お客さんの立場で、開発者にこの手の突っ込みをする
ことがあるのですが、
「そう教えられたので」
とか
「何となくそうやってます」
というような話をされる方がいます。なので、いつか同じような
突込みをお客さんにされた時のために、最低でも2通りの答えが
用意できたということですよ。
あぶぽん
大ベテラン
会議室デビュー日: 2005/10/20
投稿数: 205
投稿日時: 2006-08-24 15:28
小僧さん, どうも.

確かに開発現場では重要な判断ですね.

私が愚問と云ったのは, インフラなどの要件によって,
答えは明確であるのに,

> ※ DBサーバとAPサーバの性能は同じと仮定する

と書いてしまったことです.

# お客さまには, もちろん,
# 「○○なインフラ構成なので, △△なコーディング規定とします」
# と伝えます.



1

スキルアップ/キャリアアップ(JOB@IT)