跨库转移数据性能问题,在线等答案。。。
使用insert into tableName select * from DatabaseName.dbo.tableName转移数据
转移一张700多万的大表,需要8分钟左右,产生7G多的日志文件
求解有没有更好的方案提升性能,缩短时间???
------解决方案--------------------分批 插入-提交
------解决方案--------------------可以尝试分批多个交易,这样产生的日志没那么大。另外你可以尝试用SSIS之类的,可能性能更好一点。
------解决方案--------------------select into 比insert select 快
你试试bcp导出文件早导入的方式怎么样
如果想要减少事务日志
就分批循环,中间写一个waitetime 来让系统回收日志达到重复利用。
------解决方案--------------------接受数据的数据库设置为简单恢复或大容量恢复模式。
master.dbo.cmdshell 'bcp "select * from tb" -batch 10000'
授之于鱼不如授之于渔,
使用 Batch Size 提高 Transaction 性能 - 微软亚太区数据库技术支持组 官方博客 - Site Home - MSDN Blogs 好论坛你值得拥有!
------解决方案--------------------select * into
日志恢复模式改为大容量恢复模式,另外,禁用聚集索引。
------解决方案--------------------700W才8分钟还可以啦
另外,你转移后,旧表要清空吗?如果要清空,就不如直接改名,再新建表了。
------解决方案--------------------1/ 大批量插入数据,库恢复模式设置为大容量插入模式或简单模式;
2/ 可以使用bcp "database.dbo.tablename" out c:\dbbackup\tablename.csv -w -t"," -T
然后使用bcp in ...或bulk insert ...导入。