11g plsql本地编译
====================
--说明
11g支持本地编译plsq代码
以前版本中编译plsql代码要先将代码转换为c代码
之后再由第三方程序编译
11g中可以直接将plsql代码转换成服务器dll进行本地编译
11g支持本地编译plsq代码
以前版本中编译plsql代码要先将代码转换为c代码
之后再由第三方程序编译
11g中可以直接将plsql代码转换成服务器dll进行本地编译
--使用方法
使用参数plsql_code_type控制
参数可以有两个值
interpreted --原有方式
native --本地编译
修改参数可以使用alter system 或者alter session
使用参数plsql_code_type控制
参数可以有两个值
interpreted --原有方式
native --本地编译
修改参数可以使用alter system 或者alter session
---------------------------
--测试
--当前参数值为原有方式
--当前参数值为原有方式
SQL> show parameter plsql_code_type
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
plsql_code_type string INTERPRETED
------------------------------------ ----------- ------------------------------
plsql_code_type string INTERPRETED
--开启时间反馈
SQL> set timing on
SQL> set timing on
--在原有方式下编译存储过程
--用时0.77秒
SQL> create or replace procedure p_test
is
begin
insert into t select max(id)+1 from t;
commit;
end;
/
2 3 4 5 6 7
Procedure created.
--用时0.77秒
SQL> create or replace procedure p_test
is
begin
insert into t select max(id)+1 from t;
commit;
end;
/
2 3 4 5 6 7
Procedure created.
Elapsed: 00:00:00.77
--删除过程
SQL> drop procedure p_test;
SQL> drop procedure p_test;
Procedure dropped.
Elapsed: 00:00:01.20
--设置参数,使用本地编译
--用时0.35
--oracle声称的使用本地编译快一倍在测试中确实如此
--用时0.35
--oracle声称的使用本地编译快一倍在测试中确实如此
SQL> alter session set plsql_code_type=native;
Session altered.
Elapsed: 00:00:00.02
SQL>
SQL>
SQL>
SQL> create or replace procedure p_test
is
begin
insert into t select max(id)+1 from t;
commit;
end;
/
2 3 4 5 6 7
Procedure created.
SQL>
SQL>
SQL> create or replace procedure p_test
is
begin
insert into t select max(id)+1 from t;
commit;
end;
/
2 3 4 5 6 7
Procedure created.
Elapsed: 00:00:00.35
--查看特定对象的编译模式
--通过字典表all_plsql_object_settings查看
--通过字典表all_plsql_object_settings查看
SQL> select plsql_code_type from all_plsql_object_settings
2 where name='P_TEST';
2 where name='P_TEST';
PLSQL_CODE_TYPE
--------------------------------------------------------------------------------
NATIVE
--------------------------------------------------------------------------------
NATIVE
Elapsed: 00:00:00.10
======================================
切换数据库到默认本地编译
conn / as sysdba
alter system set plsql_code_type=native;
alter system set plsql_optimize_level=3; --(>2)
alter system set plsql_code_type=native;
alter system set plsql_optimize_level=3; --(>2)
shutdown immediate
startup upgrade
startup upgrade
@$ORACLE_HOME/rdbms/admin/dbmsupgnv.sql
shutdown immediate
startup
startup
@$ORACLE_HOME/rdbms/admin/utlrp.sql
--操作以后数据库默认的编译方式就是本地编译
--此操作的反向操作为将dbmsupgnv.sql替换为dbmsupgin.sql
--此操作的反向操作为将dbmsupgnv.sql替换为dbmsupgin.sql
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13177610/viewspace-711115/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13177610/viewspace-711115/