DB2鎖問題
對一個熟悉Oracle的人而言,瞭解到DB2的加鎖機制(預設CS隔離級別),會對DB2的併發性產生很多擔憂。
可能DB2透過提供許多引數(DB2_SKIPINSERTED、DB2_SKIPDELETED、DB2_EVALUNCOMMITTED)可以實現高併發,但增加了應用開發的複雜性。
1,讀需要加鎖,可能被更新阻塞;原因:無多版本(沒有undo資訊可以方便的構造多版本)
2,存在鎖升級;原因:鎖資源集中
3,鎖型別與存取計劃有關,即是否有索引、是否有謂詞、當前系統內鎖數量等,都會影響鎖型別;原因:試圖在鎖粒度與資源(CPU、記憶體)使用之間平衡,依賴於執行計劃
相較而言,Oracle的鎖設計顯得非常精巧(可能不只是鎖本身,可能與整體架構有關)
1,讀不加鎖,所需資料透過undo資訊構造一致讀塊實現
2,行記錄分佈在物理行上,不存在鎖升級問題(注,為了實現行上鎖標記清理,有快速、延遲清理等級制)
3,鎖型別與存取計劃無關
4,為了保護記憶體結構,使用Latch保護,也有利於高併發
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18922393/viewspace-696430/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- db2常見問題DB2
- synchronized鎖重入問題synchronized
- MySQL死鎖問題MySql
- oracle鎖表問題Oracle
- DB2常用傻瓜問題1000問DB2
- DB2資料庫配置問題??DB2資料庫
- MySQL鎖問題分析-全域性讀鎖MySql
- MySQL鎖等待與死鎖問題分析MySql
- DB2 鎖的監控DB2
- db2查殺死鎖DB2
- MySQL 死鎖問題分析MySql
- Sqlserver分析死鎖問題SQLServer
- 線上死鎖問題分析
- 死鎖問題總結
- oracle 解鎖的問題Oracle
- RAC 鎖管理與鎖問題的定位(二)
- RAC 鎖管理與鎖問題的定位(一)
- 如何診斷和解決db2問題DB2
- Db2 位元組問題&Db2-4229 錯誤問題DB2
- DB2 鎖表情況檢視DB2
- MySQL死鎖系列-線上死鎖問題排查思路MySql
- 測試MySQL鎖的問題MySql
- laravel 排他鎖 lockForUpdate() 使用問題Laravel
- Oracle 解決鎖表問題Oracle
- 資料庫被鎖問題資料庫
- oracle 鎖問題的解決Oracle
- sql server死鎖的問題SQLServer
- pthread_mutex 鎖問題threadMutex
- java鎖的問題速通Java
- DB2 SSL配置遇到的一個問題DB2
- DB2匯入資料遇到的問題DB2
- DB2控制中心 比較慢問題DB2
- DB2常用傻瓜問題1000問(之一) (轉)DB2
- DB2常用傻瓜問題1000問(之二) (轉)DB2
- DB2常用傻瓜問題1000問(之三) (轉)DB2
- Python | 淺談併發鎖與死鎖問題Python
- DB2檢視鎖等待的SQLDB2SQL
- JUC之多執行緒鎖問題執行緒