首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

跨库转移数据性能有关问题,答案。

2013-06-19 
跨库转移数据性能问题,在线等答案。。。使用insert into tableName select * from DatabaseName.dbo.tableNam

跨库转移数据性能问题,在线等答案。。。
使用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 ...导入。

热点排行