正文
sqlserver5亿,sqlserver亿级数据查询
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
sqlserver 导出亿级数据怎么处理?
可以使用存储过程实现,结合代码调用
代码可以使用java的jdbc或者c#等,很方便的
按照每次导出1w条,后台自动执行完成数据导出
请有经验的DBA进来回答一下,sqlserver大批量数据迁移问题
1 不需要的数据当然删除最好 减轻压力。
1) 删除前先删除索引。因为删除的同时也需要对索引进行维护。我们先删除索引再删除数据效率会有一点提高
2) 删除完数据后,再重新创建索引。为数据转换做准备。
2 数据转换过程
1)不知道你是如何实现的。我推荐的方法是将数据导出来成一个或者一系列的文件。
2)再将导出的文件导入到oracle中。可能需要进行数据类型等的转换。
我的想法就是将你的所有动作分解,一个个完成。这样出问题也能及时解决,而且互不影响。如果从sqlserver导出数据的同时还需要往sqlserver中插入数据,那么我推荐插入的数据放入一个新表中,最后将这个新表的数据也导出来再导入。
3 导入到oracle数据库中。
1)做好详细规划。删除不必要的数据大概还有接近4亿行。oracle中的表是否要做分区等?
2)数据导入后再在表上建索引。
一个表格存储四五亿条,用什么数据库存储比较好。
你的是服务器还是笔记本?就算是台式机也很难跟正式服务器比,而且再加上集群,磁盘阵列等等,这就不是一个等级的了,最最重要的,像百度这种超大型的系统都是服务器群组成的,背后可能有上千上万台服务器,能不快吗(百度不清楚,google背后的服务器过万这个是知道的)...
另外就算是4,5亿条数据,普通pc,注意下查询方式也可以提升性能,譬如只用记录ID来查询,而避免用其他字段查询,再不行,通过垂直分割或水平分割表的方式也可以优化查询
只能说这确实是个比较复杂的问题,牵涉到软件硬件方方面面的东西。
至于数据库方面,oracle,db2,sqlserver,mysql其实亿级数据量都应该没啥问题的,如果要较真的话肯定是oracle强,哈