11gr2,新增hint APPEND_VALUES

wei-xh發表於2011-12-28
/*+ APPEND_VALUES(a) */ into test a values(1,'ss');

1 row created.

lock                                   lock                                                                                 blocked
address          session id SP_ID      type   id1                                        id2 lock mode  req mode      BLOCK   sessid
---------------- ---------- ---------- ------ ------------------------------------ --------- --------- --------- ---------- --------
00002B20C8C75010       1703 25714      TM     TEST                                         0         6         0          0
000000040BC306C0       1703 25714      TX     917512                                       9         6         0          0
11 rows selected.
XIDSLOT,XIDSQN,UBAFIL,UBABLK from v$transaction;
   XIDSLOT     XIDSQN     UBAFIL     UBABLK
---------- ---------- ---------- ----------
         8          9          0          0
 
實現了11GR2以前,insert /*+ append */的功能,減免回滾段的使用。
可以看到新的這種HINT,也會導致在表上加一個最高階別的TM鎖,會導致其他會話對這個表的一切非查詢操作HANG起。
從V$TRANSACTION看出,這種方法避免了回滾段的使用。UBAFIL     ,和UBABLK 都為0

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

相關文章