代码之家  ›  专栏  ›  技术社区  ›  Edison Chuang

sqlblkcopy的缺点是什么?

  •  9
  • Edison Chuang  · 技术社区  · 16 年前

    我做了一些关于“用C_将大数据插入数据库的基本方法”的研究,然后很多人建议我使用sqlbackcopy。在我试过之后,它真的让我吃惊。毫无疑问,sqlblkcopy速度非常快。似乎sqlblkcopy是插入数据(尤其是大数据)的完美方法。但我们为什么不一直使用它呢?使用sqlbackcopy有什么缺点吗?

    2 回复  |  直到 14 年前
        1
  •  9
  •   Peter Majeed    14 年前

    我能想到两个原因:

    1. 据我所知,它只适用于Microsoft SQL Server
    2. 在许多正常的工作负载中,您不需要做大量的工作 insert S,但偶尔 插入 S与 select S和 update 微软自己声明 插入 更有效的方法是 SqlBulkCopy MSDN page .

    注意,如果你想要 文件复制 为了相当于一个普通的插入,至少你必须通过 SqlBulkCopyOptions.CheckConstraints 参数。

        2
  •  13
  •   David Catriel    15 年前

    sqlbackcopy也适用于Oracle v11,但它是由安装Oracle客户端时获得的Oracle.NET程序集提供的。sqlblkcopy类基本上是由目标数据库引擎的提供者逐个实现的。

    不过,有一个巨大的缺点——绝对没有错误报告。例如,如果您已经更新了数据集中的数据,并且正在使用适配器将其刷新回数据库,并且存在密钥冲突(或任何其他故障),则罪魁祸首数据行的.hasErrors设置为true,并且您可以在异常消息出现时将其添加到异常消息中。

    使用sqlblkcopy,您只需得到错误的类型,就可以了。祝你调试顺利。