联机文档里看不大懂,哪位高手帮我详细解释一下?谢谢!

解决方案 »

  1.   

    PL/SQL 编译器在 Oracle 数据库 10g 中获得了显著改进。重新设计了后端代码生成器。此外,还引入了新参数 PLSQL_OPTIMIZE_LEVEL 来加快 PL/SQL 代码的执行。这是纯编译(从 Oracle9i 起提供)以外的一个新特性。PLSQL_OPTIMIZE_LEVEL 参数默认值当前为“2”。 
      

  2.   

    -- PL/SQL编译器会把PL/SQL代码转换为机器代码。从Oracle 11g开始,当编译PL/SQL代码时,PL/SQL编译器可以使用性能优化器。
    -- 使用性能优化器,PL/SQL编译器可以重新组织PL/SQL代码,以提升处理性能。PL/SQL编译器所使用的优化等级是由参数PLSQL_OPTIMIZE_LEVEL控制的。
    -- 这个参数的值在0和2之间,默认值是2。这意味着,在默认情况下,PL/SQL编译器会执行优化操作。-- 从Oracle 11g开始,PL/SQL编译器可以执行子程序内联。子程序内联会使用被调用子程序的真实副本来替换子程序调用语句。
    -- 通过指定PRAGMA INLINE参数或者把PLSQL_OPTIMIZE_LEVER参数设置为3,就可以实现这个目标。
    -- 当PLSQL_OPTIMIZE_LEVEL参数被设置为3时,PL/SQL编译器就会在合适时执行自动的子程序内联。
    -- 但是,在有些情况下,PL/SQL编译器也许会选择不执行子程序内联,原因是它认为这是不可取的。