從上圖可以直觀的看出。只有當發(fā)生checkpoint時,數據才會被寫入mdf數據文件。
checkpoint的語法為:
CHECKPOINT [ checkpoint_duration ],其中checkpoint_duration 是個int類型的整數值且并且必須大于零,單位是秒,表示SQL Server 數據庫引擎會在請求的持續(xù)時間內嘗試執(zhí)行檢查點。如果省略該參數,SQL Server 數據庫引擎將自動調整檢查點持續(xù)時間,以便最大程度地降低對數據庫應用程序性能的影響。
導致CheckPoint檢查點的事件:
1.在數據庫備份之前,數據庫引擎會自動執(zhí)行檢查點,以便在備份中包含對數據庫頁的全部更改。
2.日志的活動部分超出了服務器在 recovery interval 服務器配置選項中指定的時間內可以恢復的大小。
3.日志的 70% 已滿,并且數據庫處于日志截斷模式。
當下列條件都為 TRUE 時,數據庫就處于日志截斷模式:數據庫使用的是簡單恢復模式,并且在執(zhí)行上一條引用數據庫的 BACKUP DATABASE 語句后,發(fā)生下列事件之一:
在數據庫中執(zhí)行一項最小日志記錄大容量復制操作或一條最條小日志記錄的 WRITETEXT 語句。
執(zhí)行一個在數據庫中添加或刪除文件的 ALTER DATABASE 語句。
4.停止服務器也會在服務器上的每個數據庫中發(fā)出一個檢查點命令。下列停止 SQL Server 的方法將為每個數據庫執(zhí)行檢查點:
使用 SQL Server 配置管理器。
使用 SQL Server Management Studio。
使用 SHUTDOWN 語句。