楼主: 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
601#
 楼主| 发表于 2013-6-16 12:41 | 只看该作者
本帖最后由 yulihua49 于 2013-6-16 13:17 编辑
solomon_007 发表于 2013-6-16 12:34
是业务的事务处理,而不是指加载数据


业务处理,就是取数据(卸载),计算,存数据(加载)。
举个例子:
一个语句:
update table_a set flag=0 where settlement_date=to_date(......);
这个简单吧?
在我这运行了30分钟。
然后进行业务逻辑,也就是取出来十几个列,计算出另外十几个列,然后update,比上边复杂吧?
10分钟以内完成了。用的DAU多机多线程,2节点的RAC。

你用存储过程,不用做什么复杂计算,就是简单的update,你能改进多少效率?
哦,忘了,或许可以加/*+parallel*/试试。


还有前边那个席位发布的例子,那个功能不全的存储过程,也没跑过DAU。
还有一个运行图预处理程序,也就是把原始的运行图表,改变一下格式写另一张表,原来用存储过程做,20分钟。现在用DAU做,5-6秒。
因为那个存储过程不是NEWKID大侠的作品,不算数,我以前都没说这个事。

因此,就性能而言,DAU,略胜大侠,比一般人的水平要强多了。

使用道具 举报

回复
论坛徽章:
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
602#
发表于 2013-6-16 13:59 | 只看该作者
yulihua49 发表于 2013-6-16 12:41
业务处理,就是取数据(卸载),计算,存数据(加载)。
举个例子:
一个语句:

你看,你自己也说了“那个存储过程不是NEWKID大侠的作品,不算数!”

所以说,问题就是我们也看不到你们那个RPOCEDURE写得怎么样,也许是个稀烂,那么
花再多的时间也不足为怪,你自己写的比这个快,就什么也不能说明。。。

使用道具 举报

回复
论坛徽章:
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
603#
发表于 2013-6-18 02:37 | 只看该作者
yulihua49 发表于 2013-6-16 12:41
业务处理,就是取数据(卸载),计算,存数据(加载)。
举个例子:
一个语句:

你这个长时间的UPDATE例子,在UPDATE的过程中有没有可能其他的会话修改了数据并且提交?
因为ORACLE对UPDATE有数据版本的校验,如果中间碰到某行“太新”了整个UPDATE就要回滚从头再来,这样就有可能出现单条UPDATE不如多个UPDATE(如果用存储过程的话可以用数组和FORALL)的情况。

使用道具 举报

回复
论坛徽章:
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
604#
 楼主| 发表于 2013-6-18 15:02 | 只看该作者
newkid 发表于 2013-6-18 02:37
你这个长时间的UPDATE例子,在UPDATE的过程中有没有可能其他的会话修改了数据并且提交?
因为ORACLE对UP ...

这个事我再研究研究。

使用道具 举报

回复
论坛徽章:
0
605#
发表于 2013-6-18 15:05 | 只看该作者
本帖最后由 headindotcn 于 2013-6-18 15:06 编辑

it招聘 海丁网   http://www.headin.cn/Jobs

使用道具 举报

回复
论坛徽章:
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
606#
 楼主| 发表于 2013-6-18 15:07 | 只看该作者
本帖最后由 yulihua49 于 2013-6-18 15:55 编辑
solomon_007 发表于 2013-6-16 13:59
你看,你自己也说了“那个存储过程不是NEWKID大侠的作品,不算数!”

所以说,问题就是我们也看不到你们 ...


因为我们是生产系统,开发人员虽不是大侠,也至少是公司的技术骨干,也努力改进了。
在没办法的情况下,用DAU轻松应付了。虽不能做PK,但可以说明一定问题,在相近的人力代价下,(一般情况下)DAU可以产生更高性能的软件。
有可能大侠能够给出较好的成绩,但是大侠的代价也很大。
另外你应该注意到,DAU更适合发挥体系架构的总体能力。
不是说存储过程不能,而是它有局限,不是很方便。

不过有一点你们大家是共同的,大家都不喜欢DAU这类东西。
我的另一个程序,路由表预处理,处理17W的路由数据,9秒。(其实也是 读文件 --  变换 -- 加载入库,可见加载功能是基础工作)
公司某领导很不喜欢这个程序,让人用C#改写了,要把我这个程序换掉。结果它干了二十几分钟,只好作罢。

使用道具 举报

回复
论坛徽章:
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
607#
发表于 2013-6-18 15:19 | 只看该作者
yulihua49 发表于 2013-6-18 15:07
因为我们是生产系统,开发人员虽不是大侠,也至少是公司的技术骨干,也努力改进了。
在没办法的情况下 ...

你们的技术骨干都被你培养成了想你一样不喜欢用但本该用PLSQL的人, 你"成功"了!

使用道具 举报

回复
论坛徽章:
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
608#
 楼主| 发表于 2013-6-18 15:22 | 只看该作者
本帖最后由 yulihua49 于 2013-6-18 15:48 编辑
solomon_007 发表于 2013-6-18 15:19
你们的技术骨干都被你培养成了想你一样不喜欢用但本该用PLSQL的人, 你"成功"了!


nono,人家没受我影响,继续PL/SQL,只是实在说不过去的程序才交给我。

大家秉承这个原则,不到山穷水尽,绝不用C。
我支持这观念。
我的工具给山穷水尽的人用的。就是他们的救命药,这药要是不管事,这项目就死定了。
希望大家记住,如果你的数据库处理性能不理想,还有DAU一试。免费提供工具包和技术支持。


预告:正在写BULK。
不仅可以批量fetch,还可以解决:
in(1000000个值)的问题。

使用道具 举报

回复
论坛徽章:
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
609#
 楼主| 发表于 2013-6-18 16:34 | 只看该作者
newkid 发表于 2013-6-18 02:37
你这个长时间的UPDATE例子,在UPDATE的过程中有没有可能其他的会话修改了数据并且提交?
因为ORACLE对UP ...

加/*+parallel*/,从26分提到15分钟。
没有别的进程干扰。

使用道具 举报

回复
论坛徽章:
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
610#
发表于 2013-6-18 22:37 | 只看该作者
如果你们的flag都是按日期update的,应该设计另一张表,每天一行记录,只需update一行。

"我的另一个程序,路由表预处理,处理17W的路由数据,9秒。(其实也是 读文件 --  变换 -- 加载入库,可见加载功能是基础工作)
公司某领导很不喜欢这个程序,让人用C#改写了,要把我这个程序换掉。结果它干了二十几分钟,只好作罢。"
这个应该用外部表,用C#也是走上了邪路。

“预告:正在写BULK。
不仅可以批量fetch,还可以解决:
in(1000000个值)的问题。"
我也给你个预警告, in(1000000个值)应该改用JOIN。

使用道具 举报

回复

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

本版积分规则 发表回复

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