在大容量导入中按最小方式记录日志的前提条件

对于完整恢复模式下的数据库,大容量导入执行的所有行插入操作都会完整地记录在事务日志中。 如果使用完整恢复模式,大型数据导入会导致填充事务日志的速度很快。 相反,对于简单恢复模式或大容量日志恢复模式,大容量导入操作的按最小方式记录日志减少了大容量导入操作填满日志空间的可能性。 另外,按最小方式记录日志的效率也比按完整方式记录日志高。

注意注意

大容量日志恢复模式旨在于大容量操作期间临时替换完整的恢复模式。

在大容量导入操作中按最小方式记录日志的表要求

按最小方式记录日志要求目标表满足下列条件:

  • 当前没有复制表。

  • 指定了表锁定(使用 TABLOCK)。

    注意注意

    尽管在按最小方式记录日志的大容量导入操作过程中,数据插入操作没有记录在事务日志中,但每当为表分配新区时,数据库引擎仍会记录区分配信息。

对于某个表,是否按最小方式记录日志还取决于该表是否有索引,如果有,则还取决于该表是否为空:

  • 如果表没有索引,则按最小方式记录数据页。

  • 如果表没有聚集索引但是有一个或多个非聚集索引,则始终按最小方式记录数据页。 但是,记录索引页的方式取决于该表是否为空:

    • 如果该表为空,则按最小方式记录索引页。

    • 如果该表不为空,则按完整方式记录索引页。

      注意注意

      如果您以空表开始并分多批大容量导入数据,则对于第一批,将按最小方式记录索引页和数据页,但从第二批开始,将只按最小方式记录数据页。

  • 如果表有聚集索引且为空,则按最小方式记录数据页和索引页。 相反,如果表有聚集索引且不为空,则无论采用何种恢复模式,均按完整方式记录数据页和索引页。

    注意注意

    如果您以空表开始并分批大容量导入数据,对于第一批,将按最小方式记录索引页和数据页,但从第二批开始,将只按大容量方式记录数据页。

注意注意

启用事务复制时,将完全记录 BULK INSERT 操作,即使处于大容量日志恢复模式下。

相关任务

用于“返回首页”链接的箭头图标[返回页首]

请参阅

参考

bcp 实用工具

BULK INSERT (Transact-SQL)

OPENROWSET (Transact-SQL)

BACKUP (Transact-SQL)

ALTER DATABASE (Transact-SQL)

表提示 (Transact-SQL)

INSERT (Transact-SQL)

概念

恢复模式 (SQL Server)