バッチ処理でバインド変数を使わないほうがいいという理由 |
バッチ処理でバインド変数を使わないほうがいいという理由 データベースの最適化を行なううえで、大きく分けて2つの導き方が考えられる。 A バッチ処理の場合 リテラルSQL(バインド変数を使わない)→バッチ処理レスポンス改善用、専用インデックス B 画面系処理の場合 バインド変数利用SQL →実行計画 →最適化 バッチ処理でバインド変数を使わないほうがいいという理由は、Bにおいて、Aの処理の影響を受けない方が良いため。 画面系の処理においてBの処理の最適化を行なううえで、 A,Bが共通のバインド変数利用SQLを使用している場合だと Bも含めて最適な処理を導き出してしまう。その場合画面系Aのみであった場合の最適な処理とは相違する場合が発生することがあるため。 よって、AとBでSQLを共通化できたとしても、処理を共通にすべきではない。 →大変誤解を招きやすい、ある意味短絡的な結論な気がする。 解析を別にする目的のために、バッチ処理においてバインド変数を利用しない方が良いという話。 |
【このカードへのコメント】