首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 从SQL Server中导出上亿的数据,应该保存为什么格式?及一些后续问题!请大家帮忙 [已结贴,结贴人:royrandy]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • royrandy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-04-18 10:57:54 楼主
    现在有一个项目需求是这样:
        1、从源数据库(MS SQL Server 2000或2005)中几张表中提取数据。提取出来的数据量上亿。那么应该将该数据保存成为什么格式?TXT?XML?MDB?这些格式的是否支持上亿的数据量?如果不行,那应该保存为什么格式?我还要将这些导出的数据导入到目的数据库(MS SQL Server 2005)里面。
        2、数据导入后还要将导入的数据和目的数据库的数据进行比对,比对哪些数据是新增的?哪些数据是修改的?哪些数据是删除的?应该采用什么方式才能提升比对效率?另外对目的数据库的硬件要求至少要多少?
        不能从源数据库直接导入到目的数据库里面,因为物理上是隔绝的!
        谢谢大家了!
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liangCK
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-04-18 10:59:551楼 得分:0
    关注
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • areswang
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 11:01:002楼 得分:0
    同样关注,等高手!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • royrandy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 11:01:063楼 得分:0
    补充一点:源数据库还有Oracle 9i,Oracle 10g,DB2等。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wlinglong
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 11:03:174楼 得分:0
    第一个感觉你保存成mdf 文件最好  也就是 导出的时候 新建一个数据库 存到数据库里面
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zccmy22
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 11:10:145楼 得分:10
    如果是windows的文件,如果不超过。2G好像都可以,上亿的就难了

    感觉 ,保存成,mdb可能更安全些,保存xml可能更小一些,我是没保存过这么多的数据。观望一下。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dawugui
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      3

    发表于:2008-04-18 11:15:026楼 得分:40
    1、从源数据库(MS SQL Server 2000或2005)中几张表中提取数据。提取出来的数据量上亿。那么应该将该数据保存成为什么格式?TXT?XML?MDB?这些格式的是否支持上亿的数据量?如果不行,那应该保存为什么格式?我还要将这些导出的数据导入到目的数据库(MS SQL Server 2005)里面。

    -----------------

    用DBF.

    ---------------------------------------

    2、数据导入后还要将导入的数据和目的数据库的数据进行比对,比对哪些数据是新增的?哪些数据是修改的?哪些数据是删除的?应该采用什么方式才能提升比对效率?另外对目的数据库的硬件要求至少要多少?
        不能从源数据库直接导入到目的数据库里面,因为物理上是隔绝的!
    -------------
    导进一个临时表.
    然后对比关键字,不存在的新增的.

    使用in , exists 等方法.
    ----------------------------------
    另外对目的数据库的硬件要求至少要多少?

    中档服务器即可.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • royrandy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 11:25:087楼 得分:0
    引用 6 楼 dawugui 的回复:
    1、从源数据库(MS SQL Server 2000或2005)中几张表中提取数据。提取出来的数据量上亿。那么应该将该数据保存成为什么格式?TXT?XML?MDB?这些格式的是否支持上亿的数据量?如果不行,那应该保存为什么格式?我还要将这些导出的数据导入到目的数据库(MS SQL Server 2005)里面。 

    -----------------

    用DBF.

    -----------------

    但是源数据库还有Oracle,DB2这些,这些能导出成DBF吗?

    ---------------------------------------
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • royrandy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 11:28:358楼 得分:0
    SQL Server 2005能支持上亿或者十亿的数据吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dawugui
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      3

    发表于:2008-04-18 11:36:279楼 得分:0
    引用 8 楼 royrandy 的回复:
    SQL Server 2005能支持上亿或者十亿的数据吗?

    理论上支持.实际上不知道.

    可考虑使用oracle.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dawugui
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      3

    发表于:2008-04-18 11:38:0410楼 得分:0
    引用 7 楼 royrandy 的回复:
    引用 6 楼 dawugui 的回复:
    1、从源数据库(MS SQL Server 2000或2005)中几张表中提取数据。提取出来的数据量上亿。那么应该将该数据保存成为什么格式?TXT?XML?MDB?这些格式的是否支持上亿的数据量?如果不行,那应该保存为什么格式?我还要将这些导出的数据导入到目的数据库(MS SQL Server 2005)里面。 

    ----------------- 

    用DBF.

    -----------------

    但是源数据库还有Oracle,DB2这些,这些能导出成DB…


    如果你SQL SERVER,oracle ,db2都会玩,那这个问题貌似不该问.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tektite
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 11:41:1311楼 得分:0
    不妨试试 sybase 的 IQ
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhu_gx
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 11:47:2512楼 得分:0
    上亿数据  还真没做过这么多数据量的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhu_gx
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 11:48:2213楼 得分:0
    这个运行起来时间应该也不短吧,是什么行业的程序呀?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • playboyzys12
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 13:50:1314楼 得分:0
    我用sqlserver的bcp命令导出数据到txt文本,速度很快,不过只导过六、七百万的数据,上亿就没试过。
    另外,如果系统是32位的话,内存好像只能用到2G哦,文件太大了可能会导致内存溢出。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • utpcb
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 13:53:5915楼 得分:0
    up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cdzch
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 14:12:0816楼 得分:0
    关注
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • flairsky
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 14:14:2317楼 得分:0
    引用 8 楼 royrandy 的回复:
    SQL Server 2005能支持上亿或者十亿的数据吗?


    现在流行10亿吗?

    今天见两次了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • caorobby
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 15:17:5618楼 得分:0
    支持....
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • royrandy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 16:32:0719楼 得分:0
    引用 17 楼 flairsky 的回复:
    引用 8 楼 royrandy 的回复:
    SQL Server 2005能支持上亿或者十亿的数据吗?


    现在流行10亿吗?

    今天见两次了

    -------------------

    我也不想有10亿。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ranzj
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 16:41:5820楼 得分:0
    二进制
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhong2006
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 16:55:2021楼 得分:0
    等待高手的出现
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhong2006
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 16:56:4522楼 得分:0
    碰到同样的问题,需要导入导出的时候效率尽可能的高
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhxingway
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 18:41:5823楼 得分:0
    关注中,顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • raojl
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 20:45:1924楼 得分:0
    分而治之
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cxmcxm
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 21:46:1625楼 得分:0
    1.在源数据库服务器中建一空数据库.再将源数据库的数据导入到此数据库中,然后再分离或备份数据库.
    2.将分离的数据库数据文件在目的数据库服务器中附加或恢复.再将数据导入目的数据库.
    3.比较数据.除了建索引外,好象没什么好的方法加速

    lz请详细说明数据的变化情况.
    是否每次比较上亿数据都是新增的.

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • littlegang
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 22:06:5426楼 得分:0
    难道不会分成多张表?
    导出麽,又不是直接拿来做表连接用的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Goodxstudio
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 22:20:1927楼 得分:0
    如果是windows的文件,如果不超过。2G好像都可以,上亿的就难了

    现在的支持2G以上文件滴(NTFS)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • huangqing_80
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-18 22:35:4028楼 得分:0
    引用 14 楼 playboyzys12 的回复:
    我用sqlserver的bcp命令导出数据到txt文本,速度很快,不过只导过六、七百万的数据,上亿就没试过。
    另外,如果系统是32位的话,内存好像只能用到2G哦,文件太大了可能会导致内存溢出。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • GDC_ZhaoYZ0304360
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-19 12:15:1529楼 得分:0

    关注一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友