2011-01-19 7 views
14

になると、DEBUGオプションを有効にしてすべてのOracleパッケージがコンパイルされます。 IDE(PLSQLDeveloper)のデフォルトです。したがって、バックグラウンドでパッケージをコンパイルすると、次のように実行されます。ORACLEパッケージをコンパイルすると、DEBUG

ALTER PACKAGE emp_mgmt 
    COMPILE DEBUG PACKAGE; 

パフォーマンスの影響があるのでしょうか?オラクルのドキュメントALTER PACKAGEにはこれについて何も言及していません。

答えて

8

行うことができますoptimizations that the PL/SQL compilerの全範囲があります。

(最適化のほとんどを無効にする)

Setting the mode to debug is equivalent to setting the optimizer level to 1

だからそれがパフォーマンスに大きな影響を与える可能性があります。

+1

+1です。ドキュメントの抜粋を残すことができますか?私はSOのどこかを読んだことがあるので、ここで抽出物を残しておくと、参照が消える場合の損失を防ぐことができます。 – DarkThrone

+0

素晴らしい参考に感謝します。 –

+1

両方のリンクが表示されるようになりました。 –

4

Oracleは、IDE開発者用のDebug APIを提供しています。パッケージがDEBUGオプションでコンパイルされている場合、そのAPIでブレークポイントを設定することができます。 DEBUGオプションを使用してすべてのパッケージをコンパイルした場合、そのAPIを使用してブレークポイントを設定してシステムを操作できます。

私は、デバッグモードでパッケージをコンパイルすることは、パフォーマンス上の問題よりもセキュリティ上の問題であると思います。

EDIT: SET_BREAKPOINT Function Oracleのドキュメントで

+0

ありがとうございました。私はDEBUGオプションの意味を知っていましたが、私の環境では問題ではありませんが、セキュリティ問題を指摘したことは良いことです。私はそれがパフォーマンスに影響を与えるかどうかまだ不思議です。 –

+0

@ローブエレクター:グレーのフックで答えを受け入れることはできますか?しかし、それが正しい場合にのみ!前回の予選に向けて:私はこれまで過去の問題は可能だったが、今日はそれ以上はなかったと思う! – Tim

+0

私の質問に完全には答えないので、これを受け入れる前に他の回答を待つことになります。ドキュメンテーションと参考文献については –

2

デバッグオプションを使用してコンパイルすると、パフォーマンスが低下します。たとえば、メタホンを計算するために50,000回ループする簡単なテスト(デバッグモードでは、多くの文字列テスト、それ以外は...)は、時間の2倍の時間がかかります。

関連する問題