我目前正在使用 SQL Server 的fn_dblog
功能,并且遇到了一个我无法理解的概念。在函数的结果中,有一个“页面 ID”列和一个“插槽 ID”列,该组合对应于单个日志记录。
我的问题是,这是否意味着一条日志记录只能(最多)描述单行的修改?
我试图更深入地了解 SQL Server 如何管理和表示数据修改,特别是 fn_dblog 函数,因此任何见解或资源将不胜感激。
我目前正在使用 SQL Server 的fn_dblog
功能,并且遇到了一个我无法理解的概念。在函数的结果中,有一个“页面 ID”列和一个“插槽 ID”列,该组合对应于单个日志记录。
我的问题是,这是否意味着一条日志记录只能(最多)描述单行的修改?
我试图更深入地了解 SQL Server 如何管理和表示数据修改,特别是 fn_dblog 函数,因此任何见解或资源将不胜感激。
从一般意义上来说,是的。有一些日志记录不是为数据页创建的(例如,增长文件、检查点等),而其他日志记录将记录一项更改,但可能会影响许多项目(截断表将更改单行[删除元数据中的行],但这实际上会删除整个数据表、页面拆分等)。话虽如此,日志记录是记录的单个原子更改,这是一种简单的思考方式。
了解更多信息的最佳方法是尝试一堆不同的事情并查看创建的日志记录:)