唯一索引操作可能產生的鎖
SESSION 1(SID=3254):
apolloCRMG>create table wxh_tbd(id number);
Table created.
apolloCRMG>create unique index wxh_ind on wxh_tbd(id);
Index created.
apolloCRMG>insert into wxh_tbd values(1);
1 row created.
SESSION 2(SID=1001):
apolloCRMG>insert into wxh_tbd values(1);
被hang住了。
觀察等待:
apolloCRMG>select sid,type ,id1,id2 ,lmode,request from v$lock where sid=1001 or block=1;
SID TYPE ID1 ID2 LMODE REQUEST
---------- ---- ---------- ---------- ---------- ----------
1001 TX 196620 681711 0 4
1001 TM 139590 0 3 0
1001 TX 393244 717891 6 0
3254 TX 196620 681711 6 0
session 2獲得X模式的自身的事務鎖後,還需要獲得session 1的S模式的事務鎖(根據ID1,ID2就可以確定獲取的是同一個資源),這個時候產生等待。如果session 1回滾,SESSION 2可順利獲得,並且等待裡的ID1,ID2也都為自己的事務資訊了。
apolloCRMG>rollback;
Rollback complete.
apolloCRMG>select sid,type ,id1,id2 ,lmode,request from v$lock where sid=1001 or block=1;
SID TYPE ID1 ID2 LMODE REQUEST
---------- ---- ---------- ---------- ---------- ----------
1001 AE 99 0 4 0
1001 TM 139590 0 3 0
1001 TX 393244 717891 6 0
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22034023/viewspace-687943/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 明明加了唯一索引,為什麼還是產生重複資料?索引
- 常見MongoDB資料庫操作產生的鎖總結MongoDB資料庫
- PostgreSQLCREATEINDEXCONCURRENTLY的原理以及哪些操作可能堵塞索引的建立SQLIndex索引
- 唯一索引索引
- PHP產生一個唯一IDPHP
- 唯一索引和普通索引的選擇索引
- MySQL <唯一索引>MySql索引
- MySQL 唯一索引和普通索引MySql索引
- MySQL 唯一索引範圍查詢鎖下一個記錄的理解MySql索引
- Elasticsearch系列---生產叢集的索引管理Elasticsearch索引
- 一條唯一索引索引
- Linux 萬用字元可能產生的問題Linux字元
- 【Oracle】死鎖的產生與處理Oracle
- 【Mongo】mongos shard 唯一索引的問題Go索引
- 主鍵約束、唯一約束和唯一索引索引
- FPGA注意事項——鎖存器的產生FPGA
- mysql唯一索引是什麼MySql索引
- MySQL實戰45講——普通索引和唯一索引MySql索引
- 不同insert操作產生的undo的測試
- 資料庫表的唯一索引問題資料庫索引
- mysql的唯一索引不會利用change bufferMySql索引
- 「生產事故」MongoDB複合索引引發的災難MongoDB索引
- 對手機丟失後可能產生的危害的思考
- 普通索引和唯一索引,應該怎麼選擇?索引
- [20211105]索引分裂塊清除日誌增加(唯一索引).txt索引
- 明明加了唯一索引,為什麼還是產生了重複資料?索引
- 如何避免SHRINKDATABASE & SHRINKFILE 產生索引碎片(轉載)Database索引
- synchronized 內部原理、常見鎖策略、CAS、 以及死鎖的產生和解決synchronized
- 如何選擇普通索引和唯一索引《死磕MySQL系列 五》索引MySql
- [20211108]索引分裂塊清除日誌增加(唯一索引)2.txt索引
- Llama3可能是產生幻覺最多的小模型模型
- 數字化賦能精益生產:為工業生產開啟無限可能的新篇章!
- MySQL索引失效行鎖變表鎖MySql索引
- 資料庫聚簇索引——not null條件對唯一鍵索引成為聚簇索引的影響資料庫索引Null
- MySQL淺談(索引、鎖)MySql索引
- mysql 新增時,唯一索引衝突時更新MySql索引
- Oracle與GreatSQL差異:更改唯一索引列OracleSQL索引
- 技術分享 | MySQL 大表新增唯一索引的總結MySql索引
- 如何優雅的向MySQL唯一索引列增加值MySql索引