网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > 性能调优 > Oracle10g新特性—选择性编译-性能调优  

Oracle10g新特性—选择性编译-性能调优

2008-07-16  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

        Oracle10g中提供了一个十分方便开发人员的新特性——选择性编译。即可以通过条件,只编译PL/SQL中的部分代码。如果你对C++很熟悉,那你会对这个特性感觉非常亲切,因为它和C++中的条件宏十分相似。在9i的时候,开发人员将自己的调试信息加入到程序中,往往release之后都没有删掉,这些信息轻则影响可读性,严重的话会影响系统性能。有了这个特性后,这个问题就可以解决了。 网管网www_bitscn_com

        下面举个简单的例子解释一下: 网管朋友网www_bitscn_net

        创建一个有条件宏的函数:

          SQL> CREATE OR REPLACE FUNCTION F_TESTDEBUG
         RETURN NUMBER IS
         v_count number;
         BEGIN
         select count(*) into v_count from user_tables;
         $IF $$my_debug $THEN
         DBMS_OUTPUT.PUT_LINE('Tables number is: ' || v_count);
         $END
         return v_count;
         END; 网管网www_bitscn_com
         /
        Function created

网管论坛bbs_bitsCN_com

        激活debug信息(通过变量$$my_debug控制):

         SQL> ALTER FUNCTION F_TESTDEBUG COMPILE PLSQL_CCFLAGS = 'my_debug:TRUE' REUSE SETTINGS;
        Function altered
网管联盟bitsCN_com

        运行函数:

         SQL> set serveroutput on
         SQL> declare
         v_res number;
         begin
         v_res := F_TESTDEBUG;
         end;
         /
        Tables number is: 22
        PL/SQL procedure successfully completed

网管bitscn_com

        这时候,可以看到debug信息被打印出来了。

网管网www.bitscn.com

        我们再去掉调试信息:

         SQL> ALTER FUNCTION F_TESTDEBUG COMPILE PLSQL_CCFLAGS = 'my_debug:FALSE' REUSE SETTINGS;
        Function altered

网管联盟bitsCN@com

        执行函数:

          SQL> declare
         v_res number;
         begin
         v_res := F_TESTDEBUG;
         end;
         /
        PL/SQL procedure successfully completed
网管联盟bitsCN_com

        我们可以看到,调试信息没有了。

网管bitscn_com

        当然,我们在实际release的时候就不需要用alter了(除非现场调试),可以在release脚本的头部定义好my_debug变量就OK了。

中国网管联盟bitsCN.com

TAGs   性能   编译   特性       SQL>   信息   number   F_TESTDEBUG      
 上一篇:Oracle10g新特性—正则表达式-性能调优   下一篇:oracle10g新特性—物化视图-性能调优
Oracle10g新特性—选择性编译-性能调优 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: