如果comment不是ddl操作多好

aaqwsh發表於2011-05-20
背景:有些表的欄位類似如字典表,1 代表 A,2 代表B。。。
問題是後面又來了 3,4,。。如是經常要求修改該欄位的註釋。
但該操作屬於ddl操作,會是對於的sql失效,如果該操作不是ddl操作多好:

先通過一個10704得到如下trace( TX,6001f,1fcd8是對應的記錄鎖,在update OBJ$ 和 update COM$ ?  通過10046有更新這兩個字典表)

alter session set events '10704 trace name context forever ,level 12';

SQL> comment on column TEST.B_TYPE
  2    is '1:AA 2:BB';

alter session set events '10704 trace name context off';


*** 2011-05-20 16:25:00.777
ksqgtl *** TM-00000061-00000000 mode=3 flags=0x401 timeout=21474836 ***

*** 2011-05-20 16:25:00.777
ksqgtl *** TX-0006001f-0001fcd8 mode=6 flags=0x401 timeout=0 ***

ksqgtl *** TM-00000061-00000000 mode=3 flags=0x401 timeout=21474836 ***

*** 2011-05-20 16:25:00.779
ksqgtl *** TM-00000012-00000000 mode=3 flags=0x401 timeout=21474836 ***

*** 2011-05-20 16:25:00.779
ksqrcl: TX,6001f,1fcd8
ksqrcl: returns 0
*** 2011-05-20 16:25:00.779
ksqrcl: TM,12,0
ksqrcl: returns 0
*** 2011-05-20 16:25:00.779
ksqrcl: TM,61,0
ksqrcl: returns 0


SQL> select object_name,object_type from dba_objects
  2  where object_id in (18,97)
  3  ;

OBJECT_NAME                                                                      OBJECT_TYPE
-------------------------------------------------------------------------------- -------------------
OBJ$                                                                             TABLE
COM$                                                                             TABLE




comment on column屬於ddl操作,會是對於的sql失效:

SQL> select aa.SQL_TEXT,aa.LAST_LOAD_TIME,aa.LAST_ACTIVE_TIME from v$sql aa
  2  where upper(aa.SQL_TEXT) like '%SELECT COUNT(*) FROM TEST%'
  3  ;

SQL_TEXT                                                     LAST_LOAD_TIME                                            LAST_ACTIVE_TIME
------------------------------------------------------------ --------------------------------------------------------- ------------------------------
select count(*) from TEST                                      2011-05-20/16:55:50                                       2011-5-20 16:55:50

SQL>

SQL> comment on column TEST.B_TYPE
  2    is '1:AA 2:BB';

Comment added
  

SQL>
SQL> select aa.SQL_TEXT,aa.LAST_LOAD_TIME,aa.LAST_ACTIVE_TIME from v$sql aa
  2  where upper(aa.SQL_TEXT) like '%SELECT COUNT(*) FROM TEST%'
  3  ;

SQL_TEXT                                                     LAST_LOAD_TIME                                            LAST_ACTIVE_TIME
------------------------------------------------------------ --------------------------------------------------------- ------------------------------

SQL> SELECT COUNT(*) FROM TEST;

  COUNT(*)
----------
    137411

SQL>
SQL> select aa.SQL_TEXT,aa.LAST_LOAD_TIME,aa.LAST_ACTIVE_TIME from v$sql aa
  2  where upper(aa.SQL_TEXT) like '%SELECT COUNT(*) FROM TEST%'
  3  ;

SQL_TEXT                                                     LAST_LOAD_TIME                                            LAST_ACTIVE_TIME
------------------------------------------------------------ --------------------------------------------------------- ------------------------------
SELECT COUNT(*) FROM TEST                                     2011-05-20/16:56:57                                       2011-5-20 16:56:56

SQL> SELECT COUNT(*) FROM TEST;

  COUNT(*)
----------
    137411

SQL>
SQL> select aa.SQL_TEXT,aa.LAST_LOAD_TIME,aa.LAST_ACTIVE_TIME from v$sql aa
  2  where upper(aa.SQL_TEXT) like '%SELECT COUNT(*) FROM TEST%'
  3  ;

SQL_TEXT                                                     LAST_LOAD_TIME                                            LAST_ACTIVE_TIME
------------------------------------------------------------ --------------------------------------------------------- ------------------------------
SELECT COUNT(*) FROM TEST                                     2011-05-20/16:56:57                                       2011-5-20 16:57:23

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/758322/viewspace-695848/,如需轉載,請註明出處,否則將追究法律責任。

相關文章