2015-06-08 58 views
0

現在我使用Sybase,當我創建表時,我應該給它一個鎖定模式。我知道其他DB可以通過DBMS選擇鎖定。現在我有這樣兩個問題:什麼是用於sybase的鎖定模式?

  1. 當我給一個全頁鎖鎖定模式,以一個表,但是當我刪除行或插入行,我檢查了鎖,我發現鎖可以排共享鎖。否則,當我使用行鎖定鎖定模式時,可能會選擇表格排除鎖定。那麼鎖定模式使用什麼?

  2. 是否可以通過行鎖來實現DB tansaction isloation級別3.我知道在此級別中不能插入適合其他事務選擇結果的新行。我想知道一個DBMS只能使用行鎖定或頁面鎖定來實現隔離級別3.

回答

0

可以通過幾種不同的方式設置鎖定方案。可以在服務器級別設置默認值,並且所有創建的表將使用默認值。據我所知,如果默認值被更改,表格將不會自動轉換爲新的鎖定方案。

您通常根據您對系統的需求選擇鎖定模式。每個級別的鎖定粒度都具有性能成本和併發成本,因此獲取表鎖是比頁級鎖更便宜,但限制了鎖定表上的一些併發事務。

表鎖定方案不直接與服務器隔離級別相關。隔離級別可以設置爲服務器範圍或每個事務,並且可能僅影響請求進程獲取的鎖的類型。您可以在任何鎖定方案的表上使用隔離級別3。在某些方面,隔離級別是一個邏輯控制,鎖定方案是一個物理控制。

我真的建議你閱讀文檔,因爲它涵蓋的內容比我在這裏可以涵蓋的要多得多。

Granularity of locks and locking schemes

How isolation levels affect locking