08/03/31 07:33:52
ハードコーディングとストアドを比べたらストアドの方がよい。
けれどハードコーディングには次のメリットがある。
たとえば、
WHERE
(col1 LIKE #para1# or #para1# = '')
AND
(col2 = #para2# or #para2# = 0)
AND
(col3 = #para3# or #para3# IS NULL)
この程度でIF文はいらん。
実行時にコンパイルされるから、ハードコーディングなら、col1~col3 に
インデックスがあれば利用される。
ストアドならアクセスパスは固定されてしまって、col1~col3 にインデックス
があっても利用されない。
こういうときはストアドでも、敢て動的SQLにするんだけど、そこまで気を
使っているコーディングを見ることがないな…。