11g plsql本地编译

 
11g plsql本地编译
====================
 
--说明
11g支持本地编译plsq代码
以前版本中编译plsql代码要先将代码转换为c代码
之后再由第三方程序编译
11g中可以直接将plsql代码转换成服务器dll进行本地编译
 
 
--使用方法
使用参数plsql_code_type控制
参数可以有两个值
interpreted  --原有方式
native    --本地编译
修改参数可以使用alter system 或者alter session
 
---------------------------
 
--测试
--当前参数值为原有方式
 
SQL> show parameter plsql_code_type
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
plsql_code_type                      string      INTERPRETED

 
--开启时间反馈
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.
Elapsed: 00:00:00.77

 
--删除过程
SQL> drop procedure p_test;
Procedure dropped.
Elapsed: 00:00:01.20
 
 
--设置参数,使用本地编译
--用时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.
Elapsed: 00:00:00.35
 
 
--查看特定对象的编译模式
--通过字典表all_plsql_object_settings查看

 
SQL> select plsql_code_type from all_plsql_object_settings
  2  where name='P_TEST';
PLSQL_CODE_TYPE
--------------------------------------------------------------------------------
NATIVE
Elapsed: 00:00:00.10

======================================

切换数据库到默认本地编译
conn / as sysdba
alter system set plsql_code_type=native;
alter system set plsql_optimize_level=3;  --(>2)
shutdown immediate
startup upgrade
@$ORACLE_HOME/rdbms/admin/dbmsupgnv.sql
shutdown immediate
startup
@$ORACLE_HOME/rdbms/admin/utlrp.sql
--操作以后数据库默认的编译方式就是本地编译
--此操作的反向操作为将dbmsupgnv.sql替换为dbmsupgin.sql
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13177610/viewspace-711115/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13177610/viewspace-711115/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值