首页 新闻 会员 周边 捐助

Sql Server 迁移数据表

0
悬赏园豆:40 [待解决问题]

因为某些原因,某个表数据过大,但是又因为数据库是在线的,现在希望把这个表移动出去,但是又不能影响当前的性能,有什么好办法吗?

表的信息:

rows           reserved           data             index_size      unused
123710747 104723856 KB 57372872 KB 47338768 KB 12216 KB

沈融兴的主页 沈融兴 | 菜鸟二级 | 园豆:404
提问于:2015-01-19 12:32
< >
分享
所有回答(6)
0

写个小程序,1秒钟移动一条数据,这样就不会卡了

刘宏玺 | 园豆:14020 (专家六级) | 2015-01-19 12:55

我现在以每次10条数据的方式移动数据到mongodb,但是非常慢!因为这个数据库还服务于其他服务!所以I/O和性能也会被其他服务损耗...

支持(0) 反对(0) 沈融兴 | 园豆:404 (菜鸟二级) | 2015-01-19 12:57

@沈融兴: 你可以在凌晨用户少的时间段来移动数据,这样影响就会小了

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2015-01-19 12:59

@刘宏玺: 原系统中凌晨有大量job,所以临晨的负载也挺大

支持(0) 反对(0) 沈融兴 | 园豆:404 (菜鸟二级) | 2015-01-19 13:09

@沈融兴: 那就只能慢慢移动了,这个还是可以实现的,或者你写一个监测操作系统性能的程序,操作系统空闲了就开始移动数据库,不空闲就停止,慢慢的也就移动好了!

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2015-01-19 13:11

@刘宏玺: 其实我挺着急这些数据要导出来的,因为这些数据要用的,现在临时关闭了某个功能....

支持(0) 反对(0) 沈融兴 | 园豆:404 (菜鸟二级) | 2015-01-19 13:46
0

建张一模一样的表 把当前的表名字改掉

AshEs丶 | 园豆:251 (菜鸟二级) | 2015-01-19 14:18

这事我早做了,我现在要将这张表移动到其他物理机~

支持(0) 反对(0) 沈融兴 | 园豆:404 (菜鸟二级) | 2015-01-19 14:22
0

数据库在线,也可以使用备份功能把?备份-还原-转移,可以不?

一步丶q | 园豆:110 (初学一级) | 2015-01-19 14:41
0

 这不算大, 我刚处理了一个2亿多的数据表。 

1.  你的表结构,最好有自增的主键,聚集 , 移动条件根据判断min id, 和max id 来操作。 PS:只要不是字符型就行,否则是全表扫描了,不慢才怪。

2.  时间不要在高峰, 一次移太多、或者查询要移动的条件太多都会影响性能。 

3.  如果涉及表事务, 需要考虑锁表。

4.  别写其它小程序, 用sql语句,挂sql作业做, 远程sql服务器的话就建链接服务器。  这样要比其它程序性能更好。

5.  这么点数据都hold不住, 还谦影响性能, 升级服务器、 做负载均衡等, 再不行就把你换了, 哈哈。 

问天何必 | 园豆:3311 (老鸟四级) | 2015-01-20 16:39
0

的确,这个数据量不大,大量存储于索引上,如果导数这个不需要的,数据只剩下9.5G左右...这个量如果用SSIS导数的,预计十分钟左右...机器性能要很烂...顶多不会超过过二十分钟

指尖流淌 | 园豆:340 (菜鸟二级) | 2015-01-22 20:29
0

数据表已经不写了,备份还原不行么?

我是大菠萝 | 园豆:365 (菜鸟二级) | 2015-02-04 11:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册