网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle中利用EXP/IMP工具实现数据.
.Oracle9iAS Containers for J2EE.
.程序员如何掌握计算机英语.
.在oracle中限制返回结果集的大小.
.XFree86 4.x教程.
.在Windows下管理Oracle9i 服务.
.将数据导出成为文本格式的备份的.
.利用LOB字段存取操作系统二进制文.
.Oracle 9i的数据表类型.
.学习Oracle--Statspack分析.
.oracle OCCI 的一个简单的包装类.
.使用特制的报表来检查Oracle的缓.
.ORA-01034错误的解决办法.
.分享:我的oracle9i学习笔记(二).
.oracle管理查询.
.教你Oracle的数据缓冲区是如何工.
.安全至上:Oracle推出Database10.
.经典Java开发工具介绍(1):Ora.
.Oracle数据库技术(31).
.使用PL/SQL从数据库中读取BLOB对.

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

发表日期:2008-2-9


    在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 .... -----

上一篇:Oracle中通过命令行实现定时操作详解 人气:772
下一篇:Oracle数据库应用系统调优方法介绍 人气:566
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐