将一千条记录放入数据库的最快方法是什么?

时间:2012-11-26 14:10:18

标签: sql database sql-server-2008 database-administration

将数千条记录存入数据库的最快方法是什么?

我不是在寻找最好的答案 - 我只是想听听他们已经做了一些工作来调整他们的查询。如果他们在一个数据仓库大小的系统中进行完全记录的单个记录插入,那么我们将会遇到问题。 (是的,我实际上与一位BI开发人员合作,他在完全恢复模式下每晚进行数百万次单独插入,并认为性能是数据库的错误。)

1 个答案:

答案 0 :(得分:3)

  

将数千条记录存入数据库的最快方法是什么?

从一般意义上讲,执行此操作的最快进程通常涉及某种形式的bulk insert,可能会关注忽略引用完整性,约束,触发器等的选项(如果这对您的应用程序有意义,并且可能在不记录整个事情的recovery model下完成。

如果你来自你的应用程序,你可能会看到类似.net SqlBulkCopy类的内容,而不是编写文件,如上所述。

与往常一样,在尝试获得性能最佳的方法时,请在您的环境中测试多种方法。

  

我不是在寻找最好的答案

请告诉我们你在寻找什么。

  

我只是想听听他们已经做了一些工作来调整他们的查询。

好的,我已经工作了六年,其平台依赖于每次插入数千条记录,每天数百次,并尽可能地表现得像一个体面的网络应用程序。当我开始维护这个东西时,批量插入是我的第一个“修复”之一,从那时起我们做了很多优化。我相信其他人有更多的极端要求并使用类似的方法。并不是说任何一个对答案都很重要。

更新:关于硬件的一句话:

我敢肯定,在将大量记录重复填充到数据库中时,任何寻求绝对最佳性能的人都希望look at getting some of the best hardware available。我相信这个讨论超出了本网站的范围。