web-dev-qa-db-ja.com

スタンドアロンの手順と関数に対するパッケージの利点は何ですか?

スタンドアロンの手順や関数よりもOracleデータベースでパッケージを優先する必要がある理由についての正解を探しています。

13
Leigh Riffel

パッケージの利点

論理グループ–一緒に機能するメソッドは、論理的に結合されているだけでなく物理的に分離されているのではなく、まとまりのある単位にまとめることができます。

セキュアなプライベートメソッド-関数とプロシージャはパッケージに対してプライベートにでき、パッケージ内でのみ使用できます。これにより、パブリックサーフェスがよりシンプルで安全になります。

特権管理–必要な各プロシージャ/機能ごとに個別にではなく、連携して動作するプロシージャのグループに対して一度だけ権限を付与できます。

Secure Wrapping-ラップされたパッケージは、ラップされた関数/手順よりもアンラップが困難です。

簡略化されたネーミング–ネームスペースが大きいほど、名前が単純になり、他のパッケージで再利用できます。

パフォーマンスの向上–パッケージをコンパイルして、他の方法のように少しずつではなく全体をメモリにロードできます。それが存在する場合のこの利点は、他の利点と比較して最小限です。

無効化の削減–関数またはプロシージャの変更のように、パッケージ本体を変更しても依存関係は無効になりません。

固有の機能-パッケージ変数、パッケージ定数、初期化、セッション状態、パッケージコメント、およびオーバーロードされたメソッド。

参考文献:
11.2コンセプトガイド
トムに質問
パッケージのパフォーマンスに関するStackOverflow.comの質問
PL/SQLプレゼンテーションのアンラップ(pdf)

12
Leigh Riffel