「ict_note_stored_procedure_powergres」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
ストアドプロシージャは DB に依存するため、対象 DB 製品が変更になるとプロシージャも書き直す必要があります。
それでもストアドプロシージャを使う理由は以下のように言われています。
・SQL 実行時の性能向上(←この効果が一番大きい)
・SQL 構文の外部ファイル化によるメンテ性の向上
言語は 2 種類あります。
■PL/pgSQL による開発
・PL/pgSQL という独自言語による実装が必要。
→言語学習しながらになるので高度な実装は難しいかも
・独自データ型によるデータの受け渡しが可能。
・複数クエリーを返すことができない
→カーソルを返して、呼び出し元で値を取り出す必要あり。
(従来の実装に近くなるので、これは不便)
# 個人的な印象として開発効率はそれほど高くはなさそう...
# [sample]
# ・&ref("InsertTestTable.sql") [sql本体]
# ・&ref("StoredProcedureTest.java") [実行コード]
■PL/java による開発
・http://itpro.nikkeibp.co.jp/members/ITPro/oss/20040212/2/
・言語は java。
・複数クエリーも、独自データ型で返すことができそう。
・PowerGres Plus にもインストールできるかは現在確認中。
※別件:コネクションプーリングについて
以下の方法にて実現しようと思います(要検証)
http://www.postgresql.org/docs/7.4/static/jdbc-datasource.html
ストアドプロシージャは DB に依存するため、対象 DB 製品が変更になるとプロシージャも書き直す必要があります。
それでもストアドプロシージャを使う理由は以下のように言われています。
・SQL 実行時の性能向上(←この効果が一番大きい)
・SQL 構文の外部ファイル化によるメンテ性の向上
言語は 2 種類あります。
■PL/pgSQL による開発
・PL/pgSQL という独自言語による実装が必要。
→言語学習しながらになるので高度な実装は難しいかも
・独自データ型によるデータの受け渡しが可能。
・複数クエリーを返すことができない
→カーソルを返して、呼び出し元で値を取り出す必要あり。
(従来の実装に近くなるので、これは不便)
# 個人的な印象として開発効率はそれほど高くはなさそう...
# [sample]
# ・&ref(InsertTestTable.sql) [sql本体]
# ・&ref(StoredProcedureTest.java) [実行コード]
■PL/java による開発
・http://itpro.nikkeibp.co.jp/members/ITPro/oss/20040212/2/
・言語は java。
・複数クエリーも、独自データ型で返すことができそう。
・PowerGres Plus にもインストールできるかは現在確認中。
※別件:コネクションプーリングについて
以下の方法にて実現しようと思います(要検証)
http://www.postgresql.org/docs/7.4/static/jdbc-datasource.html