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

2016-01-29 14:45 4 1 收藏

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

【 tulaoshi.com - Oracle教程 】

    在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';

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

OBJECT_NAME LAST_DDL_TIME
------------------------------ -------------------
PINING 2007-03-31 17:52:58

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

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';

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

OBJECT_NAME LAST_DDL_TIME
------------------------------ -------------------
PINING 2007-03-31 17:54:35

 

[next]

    在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';

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

OBJECT_NAME LAST_DDL_TIME
------------------------------ -------------------
PINING 2007-03-31 17:45:25

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

-to be continued ....

-----

来源:http://www.tulaoshi.com/n/20160129/1494101.html

延伸阅读
    环境:oracle10g,操作系统5.2     数据库系统在rootvg下/oracle文件系统下,     数据文件在datavg下/oradata文件系统下     控制文件在 $/ORACLE_HOME/dbs/一个和/oradata下两个     重做日志文件在 $/ORACLE_HOME/dbs/和/oradata下每组日志文件各一个,共...
为 了更好的查询一个树状结构的表,在Oracle的PL/SQL中提供乐一个诱人的特性——CONNECT BY子句。它大大的方便了我们查找树状表:遍历一棵树、寻找某个分支......,但还是存在一些不足。在Oracle 10G,就对这个特性做了增强。下面就举例说明一下。 CONNECT_BY_ISCYCLE 树状一般都是在一条记录中记录一个当前节点的ID和这个节点的父ID来实现。...
    前面提到,Oracle10g重建Procedure的处理有所增强,最初看到这个增强的时候,我想这个增强是否可以减少困扰已久的Library Cache的竞争呢?     我们看一下以下测试,首先在第一个session执行操作: SQL create or replace PROCEDURE pining 2 IS 3 BEGIN 4 NULL; 5 END; 6 / Procedure created. SQL ...
1.      安装Fedora2 2.      下载Oralce10G (www.oracle.com),一般安装只需下载ship.db.cpio.gz 3.      解开 [oracle @oar10g oracle]$ cd /tmp [oracle @oar10g oracle]$ gzip -cd ship.db.cpio.gz | cpio –idmv      &nb...
    历史上,Oracle的导入及导出功能曾采用磁盘文件作为卸载和再装载数据库的存储中介。对于较大的数据库这样“交换文件”的方式是个大问题。因为过大文件将会超过操作系统对文件大小的限制,使得导出不能实现。     一些有创新精神的数据管理员使用文件压缩功能,例如UNIX中的压缩功能,以获得交换文件的最大...

经验教程

305

收藏

78
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部