SQL BulkCopy与OPENDATASOURCE哪个更快
本文关键字:OPENDATASOURCE BulkCopy SQL | 更新日期: 2023-09-27 18:21:40
我想从access.mdb文件将数据插入到sqlserver中,这是使用OLEDB执行数据插入SQL BulkCopy或OPENDATASOURCE的最快方式。
对于大约20个表,数据大约是100000条记录。
谢谢。
我是从c#代码开始做这件事的,我需要哪一个性能更好,我无法进行比较,因为OPENDATASOURCE正在请求管理权限。
在我看来,使用SQL批量复制可以获得插入大量数据的最佳插入性能,因为这种方法完全绕过了SQL查询语言,并将数据直接流式传输到SQL。
进一步的性能改进
- 默认情况下,SqlBulkCopy在大容量复制操作期间使用行锁。如果指定了SqlBulkCopyOptions中的TableLock选项,它将在大容量复制操作期间获得大容量更新锁定,性能将得到提高
- 集群表:如果可行,加载它的最佳方式是删除集群索引
- 索引:索引在并行性方面会产生巨大的问题,所以它总是一个好问题吗在不激活任何索引的情况下加载的想法
您可以在白皮书上阅读更多内容:SqlBulkCopy的性能http://www.sqlbi.com/wp-content/uploads/SqlBulkCopy-Performance-1.0.pdf
您是否尝试过从访问文件将数据导入sql数据库?数据库->任务->导入,Microsoft Access作为数据源,mdb文件作为参数
如果您想通过C#实现这一点,那么您应该考虑在存储过程中使用用户定义的表类型。