解析:教你快速掌握虚拟日志文件的概念

来源:岁月联盟 编辑:zhuzhu 时间:2007-10-25

每个事务日志文件都被逻辑地分成称为虚拟日志文件的较小的段。虚拟日志文件是事务日志的截断单位。当虚拟日志文件不再包含活动事务的日志记录时,可以对其进行截断处理,使其空间可用于记录新事务。

 

虚拟日志文件的最小大小为 256 千字节 (KB)。事务日志的最小大小为 512 KB,它可以提供两个 256 KB 大小的虚拟日志文件。事务日志中的虚拟日志文件数目和大小随日志文件大小的增加而增加。小日志文件可以包含较少量的小虚拟日志文件(例如,5 MB 的日志文件包含 5 个 1 MB 的虚拟日志文件)。大日志文件可以有较大的虚拟日志文件(例如,500 MB 的日志文件包含 10 个 50 MB 的虚拟日志文件)。

 

Microsoft® SQL Server™ 2000 力求避免包含太多的小虚拟日志文件。虚拟日志文件数目的增长比其大小的增长要慢得多。如果日志文件以小增量增长,则它趋向于包含多个小虚拟日志文件。如果日志文件以较大增量增长,SQL Server 则会创建较少数量的较大虚拟日志文件。例如,如果事务日志以 1 MB 增量增长,那么与以 50 MB 增量增长的事务日志相比,其虚拟日志文件的大小将更小,数目将更多。虚拟日志文件数较多时,数据库恢复所需要的执行时间将增加。

 

随着记录不断地写入日志中,日志的结尾会从一个虚拟日志文件增长到下一个虚拟日志文件。如果数据库有一个以上的物理日志文件,随着日志的增长,日志结尾将穿过每个物理文件中的每个虚拟日志文件,直至循环回到第一个物理文件中的第一个虚拟日志文件。只有当所有的日志文件已满时,日志才开始自动增长。