append HINT 的對事務的影響
使用append hint 可以減少redo資訊的產生,可以較快的插入資料,資料遷移。
但是使用了append 後,會阻塞其他session對TABLE 的DML操作。
在append操作完畢之後要儘快提交或者rollback。
下面的測試例子:
準備資料:
create table test as select * from dba_objects;
1) 在session-A 中,執行
insert /*+ append */ into test select * from dba_objects;
2) 再開始一個session,命名為session-B ,執行
SQL> update test set object_id = 300;
session在等待。。
3) 這時回到session-A 的介面,檢視等待內容。
SQL> select * from v$lock
2 where type='TM';
ADDR KADDR SID TYPE ID1 ID2 LMODE REQUEST CTIME BLOCK
---------------- ---------------- ---------- ------ ---------- ---------- ---------- ---------- ---------- ----------
070000004ED1ECA8 070000004ED1ECD0 20 TM 369448 0 6 0 359 1
070000004ED1EBD8 070000004ED1EC00 33 TM 369448 0 0 3 333 0
SQL> select * from dba_waiters;
WAITING_SESSION HOLDING_SESSION LOCK_TYPE MODE_HELD MODE_REQUESTED LOCK_ID1 LOCK_ID2
--------------- --------------- ------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------ ---------- ----------
33 20 DML Exclusive Row-X (SX) 369448 0
可以看到session 20 是執行append操作的session,擁有的Exclusive Lock, 而session 33 在申請 Row-X ,而Lock級別是不相容的。故導致session 33 等待。
看到append操作是要獲得排他鎖,導致對該TABLE 的DML操作無法正常進行。
解決辦法是執行append操作的session提交或者回顧session。
提示: DBA_WAITERS的檢視,需要執行 $ORACLE_HOME/rdbms/admin/catblock.sql 指令碼得到。
當然了,有了DBA_WAITERS的檢視,可以通過utllockt.sql 獲得lock的層級關係圖。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/40239/viewspace-573312/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 網路延遲對事務的影響
- mysql事務對效率的影響分析總結JILEMySql
- Append HintAPP
- Select for update/lock in share mode 對事務併發性影響
- 關於append sql hint的實驗APPSQL
- SQL Server中事務日誌自動增長對效能的影響(下)PGSQLServer
- SQL Server中事務日誌自動增長對效能的影響(上)OSSQLServer
- [原創]append_values hintAPP
- 【Oracle】-【COMMIT對索引的影響】-從trace看COMMIT對索引的影響OracleMIT索引
- shrink 操作對索引的影響索引
- Update操作對索引的影響索引
- insert的時候使用append會不會影響到表的大小APP
- 從一次 FULL GC 卡頓談對服務的影響GC
- 3分鐘搞懂MySQL事務隔離級別及SET TRANSACTION影響事務MySql
- unusable index對DML/QUERY的影響Index
- Arraysize 對consistent get的影響
- mysql event對主從的影響MySql
- 新增欄位對SQL的影響SQL
- 語言對思維的影響
- 不停機 data guard 注意事項 (重建orapw對資料庫的影響)資料庫
- 對事務的理解
- 新會計準則實施對財務軟體的影響
- 絕對定位對margin外邊距的影響
- shrink 與rebuild對索引高度的影響對比Rebuild索引
- 遊戲暗示對於遊戲玩家的影響遊戲
- INDEX建立方式對SQL的影響IndexSQL
- 關於OPcache對Swoole影響的理解opcache
- 物聯網對企業的影響
- Web-Scale IT:對企業的影響Web
- 音樂對程式設計的影響程式設計
- JAVA 異常對於效能的影響Java
- 表型別對AUTO_INCREMENT的影響型別REM
- 對我影響最大的圖靈書圖靈
- 關於drop操作對role的影響
- Stripe Size大小對讀寫的影響
- “影響者研究”系列(一):社會網路化時代影響者對營銷創新的影響
- spring事務的傳播屬性是什麼?它會影響什麼?Spring
- 表資料的儲存對索引的影響索引