このページをはてなブックマークに追加このページを含むはてなブックマーク このページをlivedoor クリップに追加このページを含むlivedoor クリップ

  • 追加された行はこの色です。
  • 削除された行はこの色です。
*目次 [#r27d01b4]

#contents


*ストアドプロシージャ [#k8c57292]

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

*各種RDBMSのストアドプロシージャ [#de34a3e2]

|Oracle|PL/SQL|
|Sybase/Microsoft|Transact-SQL|
|PostgreSQL|PL/pgSQL|
|[[Oracle]]|PL/SQL|
|[[SQL Server]]|Transact-SQL|
|[[PostgreSQL]]|PL/pgSQL|

*ストアドプロシージャの活用 [#f77413db]

**汎用SELECT [#p8637d19]

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


*参考文献 [#i35dd3cf]

-『楽々ERDレッスン』