SQL Server誤區30日談 第15天 CheckPoint只會將已提交的事務寫入磁盤。本站提示廣大學習愛好者:(SQL Server誤區30日談 第15天 CheckPoint只會將已提交的事務寫入磁盤)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL Server誤區30日談 第15天 CheckPoint只會將已提交的事務寫入磁盤正文
Technet 雜志文章:Understanding Logging and Recovery in SQL Server
博文: How do checkpoints work and what gets logged
博文: What does checkpoint do for tempdb?
你可使用以下兩個跟蹤標志檢查CheckPoint是若何任務的。
3502: 當CheckPoint開端和停止時,將相干信息寫入毛病日記
3504: 將CheckPoint時寫回磁盤的頁的信息寫入毛病日記
為了應用這個跟蹤標志,你必需針對一切線程開啟,不然你將會在毛病日記中甚麼都看不到。應用DBCC TRACEON (3502, 3504, -1) 針對一切線程開啟這兩個追蹤標志。
上面的代碼可以證實Checkpoint會將未提交的髒頁寫回磁盤,追隨上面的步調。
CREATE DATABASE CheckpointTest; GO USE CheckpointTest; GO
CREATE TABLE t1 (c1 INT IDENTITY, c2 CHAR (8000) DEFAULT 'a'); CREATE
CLUSTERED INDEX t1c1 on t1 (c1); GO
SET NOCOUNT ON; GO
CHECKPOINT; GO
DBCC TRACEON (3502, 3504, -1); GO
上面誰人事務會發生10MB的髒頁,緊接著停止CheckPoint
[code]
BEGIN TRAN; GO INSERT INTO t1 DEFAULT VALUES; GO 1280
CHECKPOINT; GO
[html]
日記如你所見:
我們可以清晰的看出,在事務沒有提交的情形下,髒頁仍然會被寫入磁盤。