一百万条数据的导出导入方案,经验不足,请教各位~~~~~~

patrickjiang 2013-07-13 11:16:40
有一个单位的数据库Oracle里有三张表,表名我就用化名吧!教师表、打分表、课程表。学生要对教师的课程进行打分,每学期有一千多名各个专业的学生进行打分,打分项为八项,等级分为三个“优中差”。几年的数据积累下来,大概有一百万条了,而且每学期还有大约十几万条数据在产生。现在想实现教师的课程评价自动化。我考虑了两种方案,但是不知道孰优孰劣!请教各位!

Oracle是单位日常数据库,只有读的权限,采用SQL Server转存Oracle的三张表数据。教师表和课程表每年变化不大。

对于Oracle数据导出方式:
方案1:每次从Oracle中导出这三张表,Access格式,采用Web方式导入SQL Server。
方案2:每次从Oracle中导出打分表,导入SQL Server。直接读取Oracle教师、课程表。

对于SQL Server导入方式:
方案1:每次从删除三张表的数据,清空数据后再导入三张表。
方案2:每次删除数据库中的表结构,导入时再重新创建三张表。
方案3:将评分表导入数据库。

对于百万条数据导入SQL Server,应该采用什么方式?基本上只学过SQL Insert,C#的DataTable。正在看BulkInsert和SqlBulkCopy的原理。

请教各位,以上方案,孰优孰劣?
...全文
757 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
qing7416 2013-07-28
  • 打赏
  • 举报
回复
ORACLE中用存储过程实现导出平面文件,由作业定时执行,存在特定目录 在SQL中,也在存储过程实现,扫描特定目录,然后导入,然后删除平面文件... 程序不用编了,界面也不用做了,
孺子牛66 2013-07-28
  • 打赏
  • 举报
回复
使用SSIS的导入导出,把它做成DTS包,然后,你的程序直接调用这个DTS包去执行,这样,页面就只要用一个按钮去操作就行了。
發糞塗牆 2013-07-24
  • 打赏
  • 举报
回复
引用 14 楼 jadilee 的回复:
今天需要重新导入6月份的数据,13*10w*30 ... 3000w哦...不到半个小时都完成了.... 顺便请教下版主,那个分区表和分区函数有没有浅显易懂的解释,怎么创建和删除哦. 对了,我的分区表数量已经快接近1000了...我是按日分区的. [quote=引用 13 楼 DBA_Huangzj 的回复:] [quote=引用 12 楼 jadilee 的回复:] [quote=引用 9 楼 DBA_Huangzj 的回复:] 你要快的话可以考虑用BCP,上次对一个20多万的表导出成一个excel,秒杀,BCP可以导入的
起止20W...200W都可以搞的.[/quote]业务数据就20万而已[/quote][/quote]08只支持999个分区哦,2012才到15000,08好像要打SP才支持。那个分区的例子应该不算难吧
刘兄弟 2013-07-24
  • 打赏
  • 举报
回复
今天需要重新导入6月份的数据,13*10w*30 ... 3000w哦...不到半个小时都完成了.... 顺便请教下版主,那个分区表和分区函数有没有浅显易懂的解释,怎么创建和删除哦. 对了,我的分区表数量已经快接近1000了...我是按日分区的.
引用 13 楼 DBA_Huangzj 的回复:
[quote=引用 12 楼 jadilee 的回复:] [quote=引用 9 楼 DBA_Huangzj 的回复:] 你要快的话可以考虑用BCP,上次对一个20多万的表导出成一个excel,秒杀,BCP可以导入的
起止20W...200W都可以搞的.[/quote]业务数据就20万而已[/quote]
發糞塗牆 2013-07-19
  • 打赏
  • 举报
回复
引用 12 楼 jadilee 的回复:
[quote=引用 9 楼 DBA_Huangzj 的回复:] 你要快的话可以考虑用BCP,上次对一个20多万的表导出成一个excel,秒杀,BCP可以导入的
起止20W...200W都可以搞的.[/quote]业务数据就20万而已
刘兄弟 2013-07-19
  • 打赏
  • 举报
回复
引用 9 楼 DBA_Huangzj 的回复:
你要快的话可以考虑用BCP,上次对一个20多万的表导出成一个excel,秒杀,BCP可以导入的
起止20W...200W都可以搞的.
SyaNHs 2013-07-16
  • 打赏
  • 举报
回复
引用 5 楼 patrickjiang 的回复:
@dawugui,谢谢指点,但是导入导出数据的操作人是文秘专业的,她不懂什么是SQL Server导入导出,也不懂什么服务器,她只会购物。
我觉得这句话挺神的……
Andy-W 2013-07-15
  • 打赏
  • 举报
回复
如果是SQL Server & Oracle 之间的数据导入,可以考虑Kettle
發糞塗牆 2013-07-15
  • 打赏
  • 举报
回复
你要快的话可以考虑用BCP,上次对一个20多万的表导出成一个excel,秒杀,BCP可以导入的
最爱午夜 2013-07-15
  • 打赏
  • 举报
回复
使用SSIS的导入导出,把它做成DTS包,然后,你的程序直接调用这个DTS包去执行,这样,页面就只要用一个按钮去操作就行了。
hujiiori 2013-07-14
  • 打赏
  • 举报
回复
SQL Server 有导入工具 选择数据库右键---任务---导入工具,如图,按提示一步步操作,百万级不是太大的数据,几十秒到几分钟可完成
dawugui 2013-07-14
  • 打赏
  • 举报
回复
你做成一个小的软件(程序),让她直接使用即可.
patrickjiang 2013-07-14
  • 打赏
  • 举报
回复
@dawugui,谢谢指点,但是导入导出数据的操作人是文秘专业的,她不懂什么是SQL Server导入导出,也不懂什么服务器,她只会购物。
dawugui 2013-07-14
  • 打赏
  • 举报
回复
建议你可写程序分别将数据从oracle中导出,然后再导入到sql server中,百万的数据(不算大)使用DBF或TXT文件做中转即可.也可直接用程序将数据从oracle中导入到sql server中.当然,前提是你会某种软件的开发工作.
haitao 2013-07-14
  • 打赏
  • 举报
回复
数据仓库的原始需求
xiaoxiangqing 2013-07-14
  • 打赏
  • 举报
回复
用BulkInsert比较好
patrickjiang 2013-07-13
  • 打赏
  • 举报
回复
@jiangsheng @findcaiyzh @TravyLee @DBA_Huangzj @Leftie @liuchaolin

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧