PL/SQLでデータベース管理

※ポイント※
     プロシージャ、ファンクション、パッケージ、トリガーが対象。
     詳細なコーディングが対象となるわけではなく、プログラム構造体の使い分け方や、関連する設定についてが対象となる。

プログラム構造体

・プロシージャ
特定のアクションを実行するためのPL/SQLブロック。
実行可能プログラムで、引数なしで使用することも、複数の引数とともに使用することもできる。
引数としてIN、OUT、IN OUTが使用可能。


・ファンクション
1つの値を戻すためのPL/SQLブロック。
関数で、式として使用できるため、条件が適合すればSQL文の中での使用も可能。
必ずただ1つの値をRETURN文で戻す必要があるため、通常、引数としてはINを使用する。


・パッケージ
プロシージャ、ファンクション、カーソル、変数、定数、データ型などをグループ化したオブジェクト。
パッケージ仕様部とパッケージ本体で構成される。
パッケージ仕様部には定義のみが格納され、実際のコードはパッケージ本体に格納される。
パッケージの一部がコールされるとパッケージ全体がメモリにロードされるため、同時に使用するプログラムをパッケージ化することで効率化ができる。
Oracleソフトウェアとして提供されるビルトインパッケージもある。独自にコーディングしなくても即使用可能な拡張機能である。


・データベーストリガー
テーブル、ビュー、データベースに作成できる自動起動プログラム。
トリガーイベントが発生すると自動起動し、監査や複雑な制約、自動化したいタスクの記述に使用できる。

パフォーマンスに影響を与える初期化パラメータ

PL/SQLによるプログラム構造体をコンパイルするときに関連する初期化パラメータとして、次のものがある。
--
・PLSQL_CODE_TYPE
コンパイル済みコードをデータディクショナリ内だけに格納する(INTERPRETED)のがデフォルトだが、
そのプラットフォームでネイティブコンパイルして、共有ライブラリとして格納する(NATIVE)ことが選択できる。


・PLSQL_DEBUG
TRUEにすることで、開発時のデバッグ機能が有効化される。
デフォルトはFALSEのため、デバッグ機能は無効になっている。


・PLSQL_OPTIMIZER_LEVEL
デフォルト値である2の場合、実行時パフォーマンスを最適化するが、
1に変更した場合、コンパイルパフォーマンスを最適化する。


・PLSQL_WARNINGS
コンパイラからの警告メッセージを制御できる。
警告メッセージの有効化(ENABLE)/無効化(DISABLE)、メッセージ内容として重大(SEVERE)、
情報(INFORMATION)、パフォーマンス(PERFORMANCE)、すべて(ALL)のいずれかを設定できる。

例: PLSQL_WARNINGS=ENABLE:PERFORMANCE
説明: プログラムをコンパイルするときにPL/SQLコンパイラにより、パフォーマンス関連メッセージが表示される。

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License