Oracle 10g中Procedure的Last DDL Time

    早上以为发现了一个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机制有所增强,没有找到具体的原因,现在看来和你这个发现有关。

明天仔细研究一下。

今天, 在9i和10g上分别trace了一下这个过程, 没发现latch有关的东东啊, 只是实现的方法变了, 在10g上先比较source code是不是变了.

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • Do you speak English?
  • 你会说英语吗?
  • Yes, a little.
  • 会讲一点.
  • How long have you studied English?
  • 你学英语多久了?
  • He speaks English fluently.
  • 他讲英语很流利.
  • Your English is very good.
  • 你的英语很好.