用DEBUG编译ORACLE包有什么影响
我们在启用 DEBUG 选项的情况下编译所有 Oracle 包。这是我们的 IDE (PLSQLDeveloper) 的默认设置。因此,当我们在后台编译一个包时,会执行以下操作:
ALTER PACKAGE emp_mgmt
COMPILE DEBUG PACKAGE;
我想知道这是否会产生任何性能后果。关于 ALTER PACKAGE 的 Oracle 文档没有提及与此有关的任何事情。
we compile all our Oracle Packages with the DEBUG option enabled. This is the default for our IDE (PLSQLDeveloper). So when we compile a package in the background the following is executed:
ALTER PACKAGE emp_mgmt
COMPILE DEBUG PACKAGE;
I wonder if there are any performance consequences for this. The Oracle docs about ALTER PACKAGE do not mention anything about this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
PL/SQL 编译器有一系列优化 可以做。
将模式设置为调试相当于将优化器级别设置为 1< /a> (禁用大部分优化)
因此它可能会对性能产生重大影响。
There's a whole range of optimizations that the PL/SQL compiler can do.
Setting the mode to debug is equivalent to setting the optimizer level to 1 (disabling most of the optimizations)
So it could have a significant impact on performance.
Oracle 为 IDE 开发人员提供了调试 API。如果使用
DEBUG
选项编译包,则可以使用该 API 设置断点。如果您使用DEBUG
选项编译了所有包,那么有人可以通过该 API 设置断点来操纵系统!所以我认为在调试模式下编译包更多的是一个安全问题而不是性能问题。
编辑:
SET_BREAKPOINT
函数Oracle provides a Debug API for IDE developers. In the case that a Package is compiled with the
DEBUG
option, it is possible to set breaktpoints with that API. If you compiled all packages with theDEBUG
option, someone can set a breakpoint via that API to manipulate the system!So I think it is more an security issue than a preformance problem to compile Packages in debug mode.
EDIT:
SET_BREAKPOINT
Function in the Oracle documentation使用调试选项进行编译肯定会影响性能。例如,循环 50,000 次计算变音位的简单测试(大量字符串测试,if then else ...)在调试模式下需要两倍的时间。
Compiling with the debug option definitely affects performance. A simple test that loops 50,000 times calculating a metaphone for example (lots of string tests, if then else ...) takes twice the time in debug mode.