广

oracle数据库

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    Oracle10g中过程(PROCEDURE )重建的增强

    2018-04-16 10:58:08 次阅读 稿源:互联网
    广告
    全网推广平台,软文发布

        在Oracle9i中,即使一个完全相同的过程的重建,Oracle也需要重新编译过程,这个可以从LAST_DDL_TIME看出:

    [oracle@jumper oracle]$ sqlplus eygle/eygle SQL*Plus: Release 9.2.0.4.0 - ProdUCtion on Sat Mar 31 17:52:55 2007 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
    With the Partitioning option
    JServer Release 9.2.0.4.0 - Production SQL> create or replace PROCEDURE pining
    2 IS
    3 BEGIN
    4 NULL;
    5 END;
    6 / Procedure created. SQL> select object_name,last_ddl_time from dba_objects where object_name='PINING'; OBJECT_NAME LAST_DDL_TIME
    ------------------------------ -------------------
    PINING 2007-03-31 17:52:58 SQL> create or replace PROCEDURE pining
    2 IS
    3 BEGIN
    4 NULL;
    5 END;
    6 / Procedure created. SQL> select object_name,last_ddl_time from dba_objects where object_name='PINING'; OBJECT_NAME LAST_DDL_TIME
    ------------------------------ -------------------
    PINING 2007-03-31 17:54:35

        在Oracle10g中,这个LAST_DDL_TIME不再变化,这说明在10g中,当我们执行create or replace PROCEDURE 时,Oracle现在先尝试进行过程检查,假如内容没有变化,则不需要对过程进行重新编译,这可以减少Cache中的Invalidation, 从而可以减少竞争:

    $ sqlplus eygle/eygle SQL*Plus: Release 10.2.0.1.0 - Production on Sat Mar 31 17:44:46 2007 Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options SQL> create or replace PROCEDURE pining
    2 IS
    3 BEGIN
    4 NULL;
    5 END;
    6 / Procedure created. SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; Session altered. SQL> col object_name for a30
    SQL> select object_name,last_ddl_time from dba_objects where object_name='PINING'; OBJECT_NAME LAST_DDL_TIME
    ------------------------------ -------------------
    PINING 2007-03-31 17:45:25 SQL> create or replace PROCEDURE pining
    2 IS
    3 BEGIN
    4 NULL;
    5 END;
    6 / Procedure created. SQL> select object_name,last_ddl_time from dba_objects where object_name='PINING'; OBJECT_NAME LAST_DDL_TIME
    ------------------------------ -------------------
    PINING 2007-03-31 17:45:25

    然而这个变化是否有效呢?请看我接下来的另外一个测试... -to be continued .... -----

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告
    广告