导入大容量数据的基本原则

更新日期: 2006 年 12 月 12 日

ms189989.note(zh-cn,SQL.90).gif注意:
不支持将数据大容量导入到远程表中。

在将数据文件中的数据大容量导入到 Microsoft SQL Server 实例时,请使用以下原则:

  • 为用户帐户获取所需的权限。
    使用 bcp 实用工具、BULK INSERT 语句或 INSERT ...SELECT * FROM OPENROWSET(BULK...) 语句的用户帐户必须具有表的所需权限,这些权限由表所有者分配。有关每种方法所需权限的详细信息,请参阅 bcp 实用工具OPENROWSET (Transact-SQL)BULK INSERT (Transact-SQL)
  • 使用大容量日志恢复模式。
    此原则适用于使用完整恢复模式的数据库。对无索引表(“堆”**)执行大容量操作时,大容量日志恢复模式非常有用。使用大容量日志恢复有助于防止事务日志出现空间不足的情况,因为大容量日志恢复不会插入日志行。有关大容量日志恢复模式的详细信息,请参阅在大容量日志恢复模式下备份
    建议您在执行大容量导入操作之前,先将数据库改为使用大容量日志恢复模式。之后应立即将数据库重设为完整恢复模式。有关详细信息,请参阅从完整恢复模式或大容量日志恢复模式进行切换的注意事项
    ms189989.note(zh-cn,SQL.90).gif注意:
    有关如何在大容量导入操作期间最小化日志记录的详细信息,请参阅在大容量导入中按最小方式记录日志的前提条件
  • 大容量导入数据后进行备份。
    对于使用简单恢复模式的数据库,建议您在大容量导入操作完成后执行完整备份或差异备份。有关详细信息,请参阅创建 SQL Server 数据库的完整备份和差异备份
    对于大容量日志恢复模式或完整恢复模式,只需执行日志备份就足够了。有关详细信息,请参阅创建事务日志备份
  • 删除表索引以提高大型大容量导入操作的性能。
    在导入的数据量与表中已有数据量相比很大时,请使用此原则。在这种情况下,执行大容量导入操作之前删除表中的索引可显著提高性能。
    ms189989.note(zh-cn,SQL.90).gif注意:
    如果加载的数据量与表中已有的数据量相比较小时,删除索引会适得其反。因为重建索引所需的时间可能要比大容量导入操作期间所节省的时间更长。
    有关详细信息,请参阅[优化大容量导入性能](ms190421\(v=sql.90\).md)。
  • 查找并删除数据文件中的隐藏字符。
    许多实用工具和文本编辑器都会显示隐藏字符,这些隐藏字符通常位于数据文件末尾。在大容量导入操作期间,ASCII 数据文件中的隐藏字符会导致问题,这些问题会引发“发现意外空字符”错误。查找并删除所有隐藏字符有助于避免此问题。

请参阅

概念

使用 bcp 实用工具导入和导出大容量数据
使用 BULK INSERT 或 OPENROWSET(BULK...) 导入大容量数据
用于导入或导出数据的数据格式
大容量导入和导出数据的方案

其他资源

bcp 实用工具
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 12 月 12 日

新增内容:
  • 在主题顶部添加了一条注释。