我有几个Access数据库,行数超过40000000。我正在使用数据读取器读取每一行,并逐行将每一行插入SQL数据库。但似乎需要数周甚至更长时间!
有没有办法更快地完成此迁移?
答案 0 :(得分:2)
我建议您将访问数据库导出为CSV文件(或许多CSV文件),指南在此处:https://support.spatialkey.com/export-data-from-database-to-csv-file/
然后,您可以使用批量导入或SSIS将行导入SQL Server。该操作的参考将是; http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/
这种方式应该大大加快。
程序化替代方案是使用SQLBulkCopy类; https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy(v=vs.110).aspx