実質44日目

今日は別作業をバタバタとやってました。その傍らでDBアクセス処理の調査をやっている人がいてなにやら怪しげな箇所を発見。。。PreparedStatementを使っているのにバインド変数化されてない模様。バインド変数化されてないということはSQL構文解析、実行計画の作成(プランナ(オプティマイザ)による論理プラン、物理プランの作成)、SQLの実行の3ステップが常に行われるので共有メモリを消費する(SQLインジェクションの問題もあるがそれはバリデーションで防いでいるのでたぶん大丈夫)。確かにwhere文を組み立てる部分は使っているフレームワークであまり隠蔽化されてない箇所なのでやってしまいがちだ。しかもテストではまず見つからない。性能試験をちょんとやってれば話は別かもしれないが。