Bcp utilities-如何导入十亿条记录。 Dat 文件到 SQL 服务器

Bcp utilities- how to import the one billion records . Dat file in to SQL server

实际上我们有包含十亿条记录的平面文件要插入 SQL server.we 尝试了 bcp 它需要更多时间才能完成或在过程中失败。能否请教一下这个!!!

移动大量数据时需要考虑的一些事项to/from SQL 服务器(实际上是任何数据服务器)。

  1. 如果你可以将文件拆分成多个部分并加载这些部分。很可能您没有使用或几乎没有对 SQL 服务器资源施加压力,而且 BCP 副本的持续时间很长,这使您容易受到任何通信中断的影响。因此,拆分文件并异步加载(最安全)或一次加载 2、4 或 10 个文件片段……看看您是否可以让 DBA 离开他们的椅子 :)。
  2. 如果您可以将文件放在 SQL 服务器的本地驱动器上。避免 network/storage 潜在的干扰。 BCP 不允许通信中断。
  3. 消除目标上的任何索引 table。 BCP 变成了哑、堆、空、无聊 table。避免任何额外的东西,并尽可能使用 char/varchar 列(避免转换 cpu 成本)。
  4. 您可以调整 BCP 在写入 SQL 服务器之前将查询的批处理大小。默认值为 1000,但您可以将其提高到 100,000 或更多。做一些测试,看看什么最适合你。对于更大的批次,您将节省一些时间,减少对物理磁盘的接触(这也取决于很多其他因素)。
  5. 如果文件必须通过网络拉取,您还可以调整网络包大小。搜索有关计算理想数据包大小的帮助。
  6. 还有其他选项可用,但正如其他人所说,如果没有更多详细信息,您将无法获得有针对性的答案。

分享你的 bcp 命令。共享文件结构。分享关于 table 你正在 bcp 的详细信息。分布式环境(SQL 服务器和 bcp 文件?),是否涉及任何网络?您每秒获得多少条记录?文件是宽的还是窄的?文件有多宽? 5 个整数列的 10 亿条记录根本不是那么多数据。但是 10 亿条 2000 字节宽的记录......那是一个怪物!