早上以为发现了一个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:43
SQL> 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
不知道这一点小变化, 有什么意义? 但重编译过程时, 则这个时间又是变化的.
留言 (2)
这是一个重要的发现:)
因为一个测试,我之前发现Oracle10g的Latch机制有所增强,没有找到具体的原因,现在看来和你这个发现有关。
明天仔细研究一下。
Posted by eygle | Mar 28, 2007 10:40 PM
今天, 在9i和10g上分别trace了一下这个过程, 没发现latch有关的东东啊, 只是实现的方法变了, 在10g上先比较source code是不是变了.
Posted by anysql | Mar 28, 2007 10:56 PM