ORACLE裡幾種鎖模式

時間 2022-05-29 21:10:11

1樓:周圍圓

oracle鎖具體分為以下幾類:

1.按使用者與系統劃分,可以分為自動鎖與顯示鎖

自動鎖:當進行一項資料庫操作時,預設情況下,系統自動為此資料庫操作獲得所有有必要的

顯示鎖:某些情況下,需要使用者顯示的鎖定資料庫操作要用到的資料,才能使資料庫操作執行得更好,顯示鎖是使用者為資料庫物件設定的。

2.按鎖級別劃分,可分為共享鎖與排它鎖

共享鎖:共享鎖使一個事務對特定資料庫資源進行共享訪問——另一事務也可對此資源進行訪問或獲得相同共享鎖。共享鎖為事務提供高併發性,但如拙劣的事務設計+共享鎖容易造成死鎖或資料更新丟失。

排它鎖:事務設定排它鎖後,該事務單獨獲得此資源,另一事務不能在此事務提交之前獲得相同物件的共享鎖或排它鎖。

3.按操作劃分,可分為dml鎖、ddl鎖

+dml鎖又可以分為,行鎖、表鎖、死鎖

-行鎖:當事務執行資料庫插入、更新、刪除操作時,該事務自動獲得操作 表中操作行的排它鎖。

-表級鎖:當事務獲得行鎖後,此事務也將自動獲得該行的表鎖(共享鎖),以防止其它事務進行ddl語句影響記錄行的更新。事務也可以在進行 過程中獲得共享鎖或排它鎖,只有當事務顯示使用lock table語 句顯示的定義一個排它鎖時,事務才會獲得表上的排它鎖,也可使用

lock table顯示的定義一個表級的共享鎖(lock table具體用法請參 考相關文件)。

-死鎖:當兩個事務需要一組有衝突的鎖,而不能將事務繼續下去的話,就 出現死鎖。

如事務1在表a行記錄#3中有一排它鎖,並等待事務2在表a中記錄#4 中排它鎖的釋放,而事務2在表a記錄行#4中有一排它鎖,並等待事務 1在表a中記錄#3中排它鎖的釋放,事務1與事務2彼此等待,因此就造 成了死鎖。死鎖一般是因拙劣的事務設計而產生。

死鎖只能使用sql下:alter system kill session 'sid,serial#';

或者使用相關作業系統kill程序的命令,如unix下kill -9 sid,或者 使用其它工具殺掉死鎖程序。

+ddl鎖又可以分為:排它ddl鎖、共享ddl鎖、分析鎖

-排它ddl鎖:建立、修改、刪除一個資料庫物件的ddl語句獲得操作物件的 排它鎖。

如使用alter table語句時,為了維護資料的完成性、一致性、

合法性,該事務獲得一排它ddl鎖。

-共享ddl鎖:需在資料庫物件之間建立相互依賴關係的ddl語句通常需共享

獲得ddl鎖。

如建立一個包,該包中的過程與函式引用了不同的資料庫表,

當編譯此包時,該事務就獲得了引用表的共享ddl鎖。

-分析鎖:oracle使用共享池儲存分析與優化過的sql語句及pl/sql程式,使

執行相同語句的應用速度更快。一個在共享池中快取的物件獲得

它所引用資料庫物件的分析鎖。分析鎖是一種獨特的ddl鎖型別,

oracle使用它追蹤共享池物件及它所引用資料庫物件之間的依賴 關係。當一個事務修改或刪除了共享池持有分析鎖的資料庫物件

時,oracle使共享池中的物件作廢,下次在引用這條sql/plsql語 句時,oracle重新分析編譯此語句。

4.內部閂鎖

內部閂鎖:這是oracle中的一種特殊鎖,用於順序訪問內部系統結構。

當事務需向緩衝區寫入資訊時,為了使用此塊記憶體區域, oracle首先必須取得這塊記憶體區域的閂鎖,才能向此塊記憶體寫入資訊。

2樓:匿名使用者

很有用的內容.

1, 2 級別鎖都有了 例子.

4:share 共享鎖(s):阻止其他dml操作5:

s/row-x 共享行專用(srx):阻止其他事務操作6:exclusive 專用(x):

獨立訪問使用不知道 oracle 有沒有表級別的鎖. 即,鎖住整個資料表.

-----------------

測試過一些資料庫,

發現 sql server 的鎖模式和 oracle是不同的.

從 transaction isolation level (事務隔離級別)的表現可以看出來.

oracle 比較喜歡 copy on write (version control, 樂觀鎖).

sql server 比較喜歡 exclusive access (悲觀鎖).

好象是這樣.

oracle資料庫鎖的常用型別有哪些

oracle建立使用者語句,用oracle裡的sql語言建立使用者

建立使用者 create user 使用者名稱 identified by 密碼,當然建立完使用者後,你要給最基本的connect和resource角色,否則無法登入的。查詢許可權 grant select on 該表使用者名稱.gecs law to 新加使用者名稱 建立使用者 create us...

我的世界幾種模式,我的世界有幾種模式?

愛你凡凡麼麼噠 我的世界有4種模式。冒險模式 無法挖掘方塊,會生成怪物,會生成建築。有血條 飢餓值。創造模式 無限資源,可以飛行,會生成怪物,但怪物不會主動攻擊steve,會生成建築。血量無限,無飢餓值。生存模式 會生成怪物,會生成建築。有血條 飢餓值。需要挖掘方塊 收集資源打敗怪物生存下去。極限模...

鬼泣4分幾種模式,鬼泣4 通關後的幾種模式

血宮,正常闖關 哥是俗人,喜歡簡潔明瞭 簡單難度 中等難度 困難難度 dmd 但丁必死,也就是最高難度 ldk 裡面怪數量是平常模式的n倍,耐打度和中等一樣 天堂地獄 敵人打你一下掛,你打敵人也是 地獄模式 敵人打你一下掛,你打敵人不是 血色宮殿模式 100層那個 自定義的隨和 黑騎士最爽了。哈哈 ...