目次

ストアドプロシージャ

  • 通常のSQL以上に各RDBMSごとのストアドプロシージャの差異が大きい。
  • 最新のSQLの規格では、ストアドプロシージャについての規格も定義されているため、今後は互換性の面でも改善が期待できる。
  • ストアドプロシージャのメリットは、処理をDBサーバー側で完結させることができる。
    • これは処理の負荷分散にも有効である。
  • ストアドプロシージャそのものは、SQLに精通したプログラマが作成しておけばよい。

各種RDBMSのストアドプロシージャ

OraclePL/SQL
SQL ServerTransact-SQL
PostgreSQLPL/pgSQL

ストアドプロシージャの活用

汎用SELECT

  • SQLを使う場合にもっとも使用量が多いのがSELECT文である。そしてコーディングの複雑さを引き起こすのも、SELECT文である。このSELECT分の記述を少しでも軽減するために一般にビューを作成したりするが、それでもWHERE句による選択条件などにその都度値が指定される場合は、ビュー似た知るうSELECT文をホスト言語に埋め込んでやる必要が生じる。これでは問題を解決できているとはいえないが、ストアドプロシージャを使うことで解決する。
    • この方法を使えば、複雑な問い合わせが必要な場合も、すべてストアドプロシージャの中に隠蔽できる。
      • これにより仮にSQLのチューニングが必要になっても、Java側のソースに影響を与えずにストアドプロシージャ内のコードを変更すればよい。これは修正後の単体テストもやりやすいことを意味する。

参考文献

  • 『楽々ERDレッスン』