記錄鍵

表的一個記錄是可設定鎖的最小對象。一個程式可以鎖一個記錄或記錄的集合,同時其他程式可以操作同一個表的其他記錄。以磁碟頁面(disk pages)為單位存儲數據。一個磁碟頁面包含一個或多個記錄。在有些情況下,頁級鎖比單個鎖更好些。其他資料庫伺服器可能不存在頁級、鍵字級鎖。

鎖的時期

程式控制資料庫級鎖的時期。資料庫關閉時,資料庫鎖級也就釋放。表級、記錄級索引級鎖的時期依賴於使用的SQL語句以及是否使用事務。如果資料庫沒有使用事務,也就是說,事務日誌不存在並且你沒有使用COMMIT WORK語句,當運行UNLOCK TABLE語句時,表級鎖就釋放。當使用了事務時,事務結束,表級、記錄級、索引級鎖都釋放。

修改處理

當資料庫伺服器通過一個更新游標取一條記錄時,它在該記錄上設定一個PROMOTABLE鎖。如果這個動作成功,資料庫伺服器知道其他程式不能改變此記錄。因為PROMOTABLE鎖不是獨占的,其他程式能夠繼續讀這條記錄。由於在取此記錄的程式執行UPDATE、DELETE語句或簡單地取下一條記錄之前,它可能花一些時間。這樣就提高了性能。當它改變一個記錄時,資料庫伺服器在這條記錄上設定一個EXCLUSIVE鎖。如果它已經有一個PROMOTABLE鎖,它將鎖改為EXCLUSIVE狀態。EXCLUSIVE鎖的時期依賴於是否使用事務。如果沒有使用事務,被修改的記錄寫到磁碟上就會釋放該鎖。當使用了事務時,鎖就會保持到事務的結束。這個動作防止其他程式使用可能回滾到原來狀態的記錄。

相關詞條

相關搜尋

熱門詞條

聯絡我們