1.4 oracle10g新功能
1.4.2 编译时警告
我们可以在开发实例中启用plsql_warnings参数,来了解plsql程序的性能。可以为会话或数据库设置
该参数。此参数在调试数据库对象的时候开启,在生产库就不需要开启,因为其会增加数据库的开销。使用如下命令开启:
alter session set plsql_warnings = 'enable:all'
-------------------由此问题延伸的知识点-----------------------------------------------------
--如果我们想查看plsql单元对象的
all_plsql_objects_settings各个字段的大体意思
OWNER--拥有者
NAME--对象名称
TYPE--对象类型
PLSQL_OPTIMIZE_LEVEL--最佳编译:0无最佳编译,1中等最佳编译可以消除过剩代码和一场,2默认级别最佳编译设置方法,3自动子程序内联:alter session set plsql_optimize_level = 0;
Oracle的inline操作将调用操作直接替换为程序的代码,避免了调用的开销,获得了明显的性能提升,但是这种方法消耗更多的PGA内容也是显而易见的。
alter procedure procedure_name compile plsql_optimze_level = 0;
alter procedure procedure_name compile resue settings;--重用前面的设置
PLSQL_CODE_TYPE--代码类型native or INTERPRETED本地类型还是解释类型
如果我们想切换存储过程的编译方式
alter procedure procedure_name compile plsql_code_type = interpreted/native;
PLSQL_DEBUG--调试
PLSQL_WARNINGS--编译时警告
*plsql编译警告:plsql警告可以分为三类,severe用于检查可能出现的不可预料或者错误结果,例如参数的别名问题;performance用于检查可能引起的性能问题,例如执行insert操作时为number列提供了varchar2类型数据;informational用于检查子程序中的死代码;all用于检查所有警告。为了是的数据库可以在编译plsql子程序时发出警告信息,需要设置初始化参数plsql_warnings。这个参数不仅可以在系统级或者会话级设置,也可以在alter procedure命令中设置。Alter {system|session|procedure} set plsql_warnings=’{enable|disable:{all |performance|severe|informational}}’;为了检查是否存在对应警告信息,必须先激活警告检查,然后重新编译子程序,最后使用show errors命令显示警告错误。
NLS_LENGTH_SEMANTICS
PLSQL_CCFLAGS--oracle编译时变量标志 此变量只在会话级别设置
alter session set plsql_ccflags = 'name:value,name2:value';
举例
alter session set plsql_ccflags = 'debug:1';
begin
$if $$debug = 1 $then
dbms_output.put_line('hello');
$end
end;
这是会输出hello
PLSCOPE_SETTINGS
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26509390/viewspace-1398424/
,如需转载,请注明出处,否则将追究法律责任。