【问题标题】:Does CHECKPOINT work the same as COMMIT in TSQL?CHECKPOINT 的工作方式与 SQL 中的 COMMIT 相同吗?
【发布时间】:2009-06-08 18:35:23
【问题描述】:

我通常在我的存储过程中使用完全显式的事务(BEGIN TRANSACTION .... COMMIT)。我刚刚遇到一个旧的,它在代码中的某些地方使用“CHECKPOINT”。

这不会做同样的事情,对吧?即使数据库处于简单模式,整个事情仍然会作为一个大事务运行,即使中间卡了一堆 CHECKPOINTS?

【问题讨论】:

    标签: sql sql-server tsql transactions


    【解决方案1】:

    检查点只是将脏页写入磁盘,完全不是一回事。 http://msdn.microsoft.com/en-us/library/ms188748.aspx

    【讨论】:

      【解决方案2】:

      没有。

      CHECKPOINT 不同且独立于提交/回滚。

      本文演示了“SQL Server 2000 I/O Basics”(对于 SQL Server 2005 等仍然可以)。

      • 您可以检查点并写入磁盘但随后回滚

      • BEGIN/COMMIT 与恢复模式(完整、简单、批量记录)无关。 TXN 必须完成或失败。

      • 如果发生电源故障,数据可能会因为 CHECKPOINT 而在磁盘上但未提交,因此会在数据库启动过程中回滚。

      在过去,它用于try and "empty" the log of committed entries 用于简单的恢复模型。 CHECKPOINT 丢弃了它们。对于 FULL 恢复模式,您需要 BACKUP LOG。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-29
        • 2020-09-29
        • 1970-01-01
        • 2012-09-21
        • 2011-10-09
        • 1970-01-01
        • 1970-01-01
        • 2018-05-17
        相关资源
        最近更新 更多