导入大量数据的原则

从数据文件向 Microsoft SQL Server 实例大容量导入数据时,请遵循下列原则:

  • 您的用户帐户 使用 bcp、BULK INSERT 或 INSERT…SELECT * FROM OPENROWSET(BULK…) 的用户帐户必须拥有访问表所需的权限(由表所有者分配)。有关每一个用户帐户所需权限的详细信息,请参阅 bcp 实用工具、OPENROWSET (Transact-SQL) 和 BULK INSERT (Transact-SQL)。
  • 对于使用完全恢复模式的数据库:向无索引表中大容量导入数据之前,Microsoft 建议将数据库更改为使用大容量日志恢复模式。系统管理员或数据库所有者可以设置恢复模式。大容量操作以后,请将数据库重置为完全恢复模式。 使用大容量日志恢复有助于防止事务日志耗尽空间(大容量日志恢复不会记录行插入)。
  • 大容量导入数据后进行备份 对于使用简单恢复模式的数据库,建议在大容量导入操作后进行完全或差异备份。对于大容量日志恢复或完全恢复,进行日志备份即可。
  • 表索引 如果要加载的数据与表中已存在的数据相比数量较大,则执行大容量导入操作之前从表中删除索引将显著提高性能。但是,如果要加载的数据与表中已存在的数据相比数量较小,则删除索引将不会提高性能。因为重建索引所需的时间可能要比大容量导入操作期间所节省的时间更长。
  • 数据文件中的隐藏字符 许多实用工具和文本编辑器都可以显示隐藏字符,它们通常位于数据文件的底部。在大容量导入操作过程中,ASCII 数据文件中的隐藏字符可能会产生问题,导致“发现意外的空值”错误。找到并删除所有的隐藏字符可以解决此问题。