古詩詞大全網 - 古詩大全 - SQL SERVER 數據是不是查詢時用數據鎖?那更新(update)可以帶鎖嗎?

SQL SERVER 數據是不是查詢時用數據鎖?那更新(update)可以帶鎖嗎?

處理多用戶並發訪問的方法是加鎖。鎖是防止其他事務訪問指定的資源控制、實現並發控制的壹種主要手段。行是可以鎖定的最小空間, 行級鎖占用的數據資源最少,所以在事務的處理過程中,允許其他事務繼續操縱同壹個表或者同壹個頁的其他數據,大大降低了其他事務等待處理的時間,提高了系統的並發性。為了使鎖定的成本減至最少,SQL Server 自動將資源鎖定在適合任務的級別。鎖定在較小的粒度(例如行)可以增加並發但需要較大的開銷,因為如果鎖定了許多行,則需要控制更多的鎖。

行級鎖是壹種最優鎖,因為行級鎖不可能出現數據既被占用又沒有使用的浪費現象。但是,如果用戶事務中頻繁對某個表中的多條記錄操作,將導致對該表的許多記錄行都加上了行級鎖,數據庫系統中鎖的數目會急劇增加,這樣就加重了系統負荷,影響系統性能。因此,在SQL Server中,還支持鎖升級(lock escalation)。所謂鎖升級是指調整鎖的粒度,將多個低粒度的鎖替換成少數的更高粒度的鎖,以此來降低系統負荷。在SQL Server中當壹個事務中的鎖較多,達到鎖升級門限時,系統自動將行級鎖和頁面鎖升級為表級鎖。特別值得註意的是,在SQL Server中,鎖的升級門限以及鎖升級是由系統自動來確定的,不需要用戶設置。

網上找的,不知道能不能幫到妳。原文的鏈接是:/techupdate/2007/0824/467522.shtml