2011-09-12 38 views
1

我有一個關於sql server 2005-08的事務日誌的查詢。何時將事務寫入事務日誌。是在數據文件寫入日誌文件之前寫入數據文件,還是在數據庫提交到數據庫之前先寫入日誌文件?瞭解有關交易的提交過程日誌

謝謝

回答

4

它首先寫入日誌文件。這個原則被稱爲Write Ahead Logging

如果相反的情況發生,並且在日誌之前將數據寫入數據文件,則無法可靠地從崩潰中恢復。

4

正如Martin所說,只要您提交交易就會將其寫入日誌。在checkpoint進程中,髒頁(即已被修改的數據)將被異步寫入數據文件。

這也是交易可以極大提高業績的原因。如果你有一個循環在每次迭代中自行執行插入語句,每次迭代都會在寫入日誌時有效地觸及磁盤。如果您在循環之外打開一個事務,則只會命中一次磁盤,因爲之後會執行事務。

+1

+1一些很好的附加信息。骯髒頁面也可以由發佈異步I/O以及惰性寫入程序和檢查點進程的工作人員編寫。 –