last_ddl_time正确含义的测试
last_ddl_time正确含义的测试
一直以为last_ddl_time的时间是ddl的结束时间,实际结果却不是这样的,测试结果让人非常的摸不着头脑。有些东西还是自己动手测验证印象深刻。
-- 对表move操作的测试结果,我们可以发现,last_ddl_time的含义是ddl的结束时间。
SQL> CREATE TABLE scott.test_last_ddl_time AS SELECT * from dba_objects
2 ;
Table created
SQL> alter SESSION SET nls_date_format='yyyy-mm-dd hh24:mi:ss'
2 ;
会话已更改。
SQL> SELECT SYSDATE from dual
2 ;
SYSDATE
-------------------
2011-10-27 09:18:02
SQL> ALTER table scott.test_last_ddl_time MOVE
2 ;
表已更改。
SQL> SELECT SYSDATE FROM dual
2 ;
SYSDATE
-------------------
2011-10-27 09:18:11
SQL> SELECT last_ddl_time from dba_objects a WHERE a.object_name='TEST_LAST_DDL_
TIME'
2 ;
LAST_DDL_TIME
-------------------
2011-10-27 09:18:11
SQL>
--对index rebuild测试的结果,我们可以发现,last_ddl_time的含义是ddl的开始时间。
SQL> CREATE INDEX scott.idx_test_last_ddl_time_owner ON scott.test_last_ddl_time
(owner)
2 ;
索引已创建。
SQL> SELECT SYSDATE from dual
2 ;
SYSDATE
-------------------
2011-10-27 09:31:01
SQL> ALTER INDEX scott.idx_test_last_ddl_time_owner REBUILD
2 ;
索引已更改。
SQL> SELECT SYSDATE FROM dual
2 ;
SYSDATE
-------------------
2011-10-27 09:31:05
SQL> SELECT last_ddl_time from dba_objects a WHERE a.object_name='IDX_TEST_LAST_
DDL_TIME_OWNER'
2 ;
LAST_DDL_TIME
-------------------
2011-10-27 09:31:01
SQL>