楼主: yulihua49

[PRO*C] 看我做的数据库包装器

[复制链接]
论坛徽章:
14
2009新春纪念徽章
日期:2009-01-04 14:52:28沸羊羊
日期:2015-03-04 14:51:52优秀写手
日期:2014-03-14 06:00:13马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:15蜘蛛蛋
日期:2012-06-27 21:08:142012新春纪念徽章
日期:2012-01-04 11:53:29ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
591#
 楼主| 发表于 2013-4-27 10:10 | 只看该作者
本帖最后由 yulihua49 于 2013-4-27 10:46 编辑
newkid 发表于 2013-4-26 21:40
你说的sqlldr使用多节点,那么文件就可以分片了?假如能分成多个文件,那么并行压缩、上传、多个外部表多 ...


我们的外部表是以CSV格式存储的。所以内部处理时也必须要转换。
每天1000多个文件,并行sqlldr是可能的。sqlldr也是OCI啊,使用RAC性能最好的工具,非OCI莫属。
教父TOM否定了sqlldr,也就否定了RAC,我认为RAC是ORACLE最好的东西。

你要用外部表,省事的方法是 tar gzip ftp gzip tar,最慢了。
每天1000多个文件,一个一个的弄,太繁琐,倒是可以分配到各个节点上处理。
每天1000多个外部表也够繁的。

写临时表,再merge回来?
其实我们当时还另有方案,结果写新表。
原表加载后,标记为“未处理”,处理完标记为“已处理”。不可避免的,又是一次update。





使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
592#
发表于 2013-4-28 11:00 | 只看该作者
"教父TOM否定了sqlldr,也就否定了RAC"你的脑筋还转不过弯来?多个文件(外部表)当然可以在多个节点上分别访问。你SQLLDR连接哪个节点,就在那个节点做INSERT...SELECT...这不就用上了RAC?

外部表改文件名容易得很,根本没必要建1000多个。你想分几个SESSION同时处理就建几个,所有文件都可以共享这些表名。上传压缩就写程序嘛,写SHELL脚本也能同时处理多个文件吧?

PLSQL写文件操作当然拼不过C, 但我写那个程序也才花二十分钟,没有特别高要求也可以用了,如果真要极端的性能就去用更专业的工具嘛,比如OO推荐的SQL UNLOADER2。

使用道具 举报

回复
论坛徽章:
115
生肖徽章:狗
日期:2007-01-06 21:14:12马上有车
日期:2014-03-06 16:45:08马上加薪
日期:2014-05-09 12:27:582014年世界杯参赛球队: 英格兰
日期:2014-07-03 13:10:44青年奥林匹克运动会-竞技体操
日期:2014-09-10 15:30:57马上有钱
日期:2014-10-31 13:56:48美羊羊
日期:2015-03-04 14:48:582015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-04-23 19:26:10金牛座
日期:2015-09-17 08:21:44
593#
发表于 2013-5-20 21:18 | 只看该作者
HelloWorld_001 发表于 2013-4-25 23:28
我最近用了下外部表,也感觉sqlldr没啥用处了。因为可以insert into a select * from b。
b表 外部表,a表 ...

Oracle自带的工具从数据库导出数据到文本文件,好像性能是差了点
SQL*Loader还是性能非常好的

使用道具 举报

回复
论坛徽章:
548
生肖徽章2007版:猴
日期:2008-05-16 11:28:59生肖徽章2007版:马
日期:2008-10-08 17:01:01SQL大赛参与纪念
日期:2011-04-13 12:08:17授权会员
日期:2011-06-17 16:14:53ITPUB元老
日期:2011-06-21 11:47:01ITPUB官方微博粉丝徽章
日期:2011-07-01 09:45:27ITPUB十周年纪念徽章
日期:2011-09-27 16:30:472012新春纪念徽章
日期:2012-01-04 11:51:222012新春纪念徽章
日期:2020-11-30 22:13:24海蓝宝石
日期:2012-02-20 19:24:27
594#
发表于 2013-5-21 09:16 | 只看该作者
这是一个神奇的帖子

PLSQL   vs   PROC*C/C++   

PLSQL 完胜!   高效,简洁,易维护。。。

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
595#
发表于 2013-6-2 11:30 | 只看该作者
atgc 发表于 2013-5-20 21:18
Oracle自带的工具从数据库导出数据到文本文件,好像性能是差了点
SQL*Loader还是性能非常好的

如果不要求文本,datapump格式很快

使用道具 举报

回复
论坛徽章:
115
生肖徽章:狗
日期:2007-01-06 21:14:12马上有车
日期:2014-03-06 16:45:08马上加薪
日期:2014-05-09 12:27:582014年世界杯参赛球队: 英格兰
日期:2014-07-03 13:10:44青年奥林匹克运动会-竞技体操
日期:2014-09-10 15:30:57马上有钱
日期:2014-10-31 13:56:48美羊羊
日期:2015-03-04 14:48:582015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-04-23 19:26:10金牛座
日期:2015-09-17 08:21:44
596#
发表于 2013-6-2 14:46 | 只看该作者
〇〇 发表于 2013-6-2 11:30
如果不要求文本,datapump格式很快

客户肯定要文本了,而且还是有选择地导出很多表,甚至复杂的计算

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
597#
发表于 2013-6-2 18:04 | 只看该作者
atgc 发表于 2013-6-2 14:46
客户肯定要文本了,而且还是有选择地导出很多表,甚至复杂的计算

datapump也支持导出一个查询

使用道具 举报

回复
论坛徽章:
115
生肖徽章:狗
日期:2007-01-06 21:14:12马上有车
日期:2014-03-06 16:45:08马上加薪
日期:2014-05-09 12:27:582014年世界杯参赛球队: 英格兰
日期:2014-07-03 13:10:44青年奥林匹克运动会-竞技体操
日期:2014-09-10 15:30:57马上有钱
日期:2014-10-31 13:56:48美羊羊
日期:2015-03-04 14:48:582015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-04-23 19:26:10金牛座
日期:2015-09-17 08:21:44
598#
发表于 2013-6-3 08:19 | 只看该作者
〇〇 发表于 2013-6-2 18:04
datapump也支持导出一个查询

客户肯定要文本的,给他一个dump估计要投诉了

使用道具 举报

回复
论坛徽章:
14
2009新春纪念徽章
日期:2009-01-04 14:52:28沸羊羊
日期:2015-03-04 14:51:52优秀写手
日期:2014-03-14 06:00:13马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:15蜘蛛蛋
日期:2012-06-27 21:08:142012新春纪念徽章
日期:2012-01-04 11:53:29ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
599#
 楼主| 发表于 2013-6-16 12:23 | 只看该作者
本帖最后由 yulihua49 于 2013-6-16 12:39 编辑
solomon_007 发表于 2013-5-21 09:16
这是一个神奇的帖子

PLSQL   vs   PROC*C/C++   


奇怪,你从哪得到这个结论,这里通篇都是C,OCI完胜sqlldr,sqlldr完胜存储过程。

RAC加载400w行,OCI+DAU多线程2.5分钟,sqlldr16分钟,sqlldr direct path 7分40秒,
存储过程外部表加载,性能从未超过sqlldr,这在别的帖子也有表述。

见540楼的单机测试结果,大概DAU也是sqlldr的3倍。

使用道具 举报

回复
论坛徽章:
548
生肖徽章2007版:猴
日期:2008-05-16 11:28:59生肖徽章2007版:马
日期:2008-10-08 17:01:01SQL大赛参与纪念
日期:2011-04-13 12:08:17授权会员
日期:2011-06-17 16:14:53ITPUB元老
日期:2011-06-21 11:47:01ITPUB官方微博粉丝徽章
日期:2011-07-01 09:45:27ITPUB十周年纪念徽章
日期:2011-09-27 16:30:472012新春纪念徽章
日期:2012-01-04 11:51:222012新春纪念徽章
日期:2020-11-30 22:13:24海蓝宝石
日期:2012-02-20 19:24:27
600#
发表于 2013-6-16 12:34 | 只看该作者
yulihua49 发表于 2013-6-16 12:23
奇怪,你从哪得到这个结论,这里通篇都是C,OCI完胜sqlldr,sqlldr完胜存储过程。

RAC加载400w行,O ...

  是业务的事务处理,而不是指加载数据

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表