« Oracle 10g中Procedure的Last DDL Time »
Oracle » http://www.anysql.net/oracle/proc_last_tdd_ltime_10g.html 2007-03-28早上以为发现了一个10g的Bug, 大家看一下, 我重建过程P_DEMO后, 它的Last DDL Time没有变化:
SQL> SELECT OBJECT_NAME, LAST_DDL_TIME FROM USER_OBJECTS
2 WHERE OBJECT_NAME=’P_DEMO’;OBJECT_NAME LAST_DDL_TIME
——————– ——————-
P_DEMO 2007-03-28 07:40:43SQL> CREATE OR REPLACE procedure p_demo as
2 begin
3 null;
4 end;
5 /Procedure created.
SQL> SELECT OBJECT_NAME, LAST_DDL_TIME FROM USER_OBJECTS
2 WHERE OBJECT_NAME=’P_DEMO’;OBJECT_NAME LAST_DDL_TIME
——————– ——————-
P_DEMO 2007-03-28 07:40:43
在修改OCIDIFF程序时, 发现不断地同步同一个Trigger, 以为是遇到Bug, 到9i上测了一把则是变化的, 后来我改了一下这个过程的代码, 再跑时, 发现Last DDL Time就变了:
SQL> CREATE OR REPLACE procedure p_demo as
2 begin
3 null;
4 null;
5 end;
6 /SQL> SELECT OBJECT_NAME, LAST_DDL_TIME FROM USER_OBJECTS
2 WHERE OBJECT_NAME=’P_DEMO’;OBJECT_NAME LAST_DDL_TIME
——————– ——————-
P_DEMO 2007-03-28 16:38:03
不知道这一点小变化, 有什么意义? 但重编译过程时, 则这个时间又是变化的.


这是一个重要的发现:)
因为一个测试,我之前发现Oracle10g的Latch机制有所增强,没有找到具体的原因,现在看来和你这个发现有关。
明天仔细研究一下。
今天, 在9i和10g上分别trace了一下这个过程, 没发现latch有关的东东啊, 只是实现的方法变了, 在10g上先比较source code是不是变了.