1
我已經遇到了SQL Server的這個行話,我只是無法理解它究竟發生在SQL Server中。我正在看一些SQL Server的例子,它發生的地方...究竟什麼是活鎖?在SQL中,它是如何發生的? T-SQL開發者可以做什麼來避免它?
我一直在谷歌搜索,但所有不斷收到是2人在走廊的例子。
我已經遇到了SQL Server的這個行話,我只是無法理解它究竟發生在SQL Server中。我正在看一些SQL Server的例子,它發生的地方...究竟什麼是活鎖?在SQL中,它是如何發生的? T-SQL開發者可以做什麼來避免它?
我一直在谷歌搜索,但所有不斷收到是2人在走廊的例子。
當兩個進程競爭相同的資源時,會發生死鎖,但會導致僵局。例如,A鎖定X,然後嘗試鎖定Y,而B鎖定Y並嘗試鎖定X.關鍵是兩個(或多個)進程正在阻止彼此做任何事情。
當存在重疊的共享鎖時會發生活鎖,這會阻止另一個進程獲取它所需的獨佔鎖。不同的是,所有這些重疊的過程繼續完成他們的工作,所以他們仍然是「活着的」 - 只有受害者被阻止,直到他們完成。這可能永遠都不夠繁忙,設計不佳的系統。 :-)你或許可以通過升級作家的死鎖優先級來克服這種情況,但我會說實話,這不是我經常見到的情況,而且我從6.5開始就使用SQL Server ...