将一千条记录导入数据库的最快方法是什么?
我不是在寻找最好的答案——我只是想听到他们已经做了一些工作来调整他们的查询的性能。如果他们将完全记录的单个记录插入到一个数据仓库大小的系统中,我们将在未来遇到问题。(是的,我实际上与一个 BI 开发人员合作过,他在完全恢复模式下每晚执行数百万次单独的插入,并认为性能是数据库的问题。)
将一千条记录导入数据库的最快方法是什么?
我不是在寻找最好的答案——我只是想听到他们已经做了一些工作来调整他们的查询的性能。如果他们将完全记录的单个记录插入到一个数据仓库大小的系统中,我们将在未来遇到问题。(是的,我实际上与一个 BI 开发人员合作过,他在完全恢复模式下每晚执行数百万次单独的插入,并认为性能是数据库的问题。)
将一千条记录导入数据库的最快方法是什么?
在非常一般的意义上,执行此操作的最快过程通常涉及某种形式的批量插入,可能要注意忽略参照完整性、约束、触发器等的选项(如果这对您的应用程序有意义),并且可能在不记录整个事情的恢复模型。
如果您来自您的应用程序,您可能会查看类似 .net SqlBulkCopy类的内容,而不是像上面那样编写文件。
与往常一样,在尝试获得绝对最佳性能的方法时,请在您的环境中测试多种方法。
我不是在寻找最佳答案
那么请告诉我们您在寻找什么。
我只是想听到他们已经完成了一些工作来调整查询的性能。
好吧,我已经在一个平台上工作了六年,该平台一次插入数千条记录,每天数百次,并且尽可能接近表现得像一个性能良好的网络应用程序。当我开始维护这个东西时,批量插入是我的第一个“修复”之一,从那时起我们已经做了很多优化。我敢肯定,其他人有更极端的要求并使用类似的方法。并不是说这些对答案真的很重要。
更新:关于硬件的一句话:
我敢肯定,任何在重复将大量记录填充到数据库中时寻求绝对最佳性能的人都会希望获得一些可用的最佳硬件。我相信这个讨论将超出本网站的范围。