質問: sql関数とレスポンスについて 業務でjavaとdb(db2)を使用しています。 最近、sql関数を使用すべきか否かでちょっと悩んでいます。 sql関数は確かに便利ですが、使いすぎるとレスポンスが悪くなる、ということはあるのでしょうか? 今はsqlは出来るだけシンプルにして、javaで補っています。 (例えばgraphic項目から全角スペースを取り除く場合はsql関数のrtrimを使わず、dbから取り出した後にjavaで取り除く、など) ご指導よろしくお願いします。
回答: >私が知りたいのはコーディング時、sql関数(rtrim、nullだったら別の値に置き換えるvalue関数など)をふんだんに使って問題ないのか、それともsqlは最小限にしてデータの編集などはjavaで行ったほうがいいのか、ということです。 rtrimに関しては特に性能落ちる要素が見当たりませんので、使って良いと思いますが、後はプロジェクトでdb担当している人に聞いたほうが良いと思います。 言えるのは関数によってはインデックスを使いようがないケースが出てくるので性能が出ない場合があるということです。 どんな関数を使えばインデックスを使わないかはbtreeインデックスの仕組みを考えれば大体想像はつくと思いますが、分からないうちはアクセスパスとか見て検証すれば良いと思います。 db得意な人から見ればsqlで解決したほうが良い問題もjavaが得意な人から見ればjavaで解決したほうが良いということもあると思います。 僕はdbよりなのでsql関数はじゃんじゃん使うほうです。