楼主: Younth_0701

[SQL] OCI 线程安全

[复制链接]
论坛徽章:
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
41#
发表于 2021-2-2 23:05 | 只看该作者
如果你看到一大堆线程在排队,那么就不是真的并行,而是哪里出了问题。ORACLE的并行度是可以设置的。再不济你还可以用DBMS_PARALLEL_EXECUTE对数据进行人工划片。总之,你能做到的数据库也能做到,如果把数据拿出去转一圈回来还更快,我是怎么都不相信的。

使用道具 举报

回复
论坛徽章:
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
42#
发表于 2021-2-3 08:46 | 只看该作者
newkid 发表于 2021-2-2 23:05
如果你看到一大堆线程在排队,那么就不是真的并行,而是哪里出了问题。ORACLE的并行度是可以设置的。再不济 ...

可能是。他们都不知道+parallel(32).
作为版主,你居然没有帖子的审核权?

使用道具 举报

回复
论坛徽章:
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
43#
发表于 2021-2-3 09:03 来自手机 | 只看该作者
这里的审核权很高级,估计是要党员才行。连我发的每日一题都好多次被审核,还要上微信找人解决。

使用道具 举报

回复
论坛徽章:
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
44#
发表于 2021-2-7 09:51 | 只看该作者
本帖最后由 yulihua49 于 2021-2-7 20:26 编辑
newkid 发表于 2021-2-2 23:05
如果你看到一大堆线程在排队,那么就不是真的并行,而是哪里出了问题。ORACLE的并行度是可以设置的。再不济 ...

再蹭个热度哈哈。

我那个课题的方案,且不说存储过程能否胜任,单说经济性:
我用的总共96核的计算服务器。用存储过程的话,96线程能不能够用,毕竟它的运算效能没办法与二进制指令代码相比。

那么,96核的licence需要多少投资?恐怕远超过硬件投资。

你说的一个观点我同意,你既然买了ORACLE,就应该把他的功能充分用起来。
我的方案虽然是把数据弄到外边计算了,但是原有的数据库资源也充分得到利用,2*16核的RAC系统也得到充分发挥。在系统活动期间,数据库基本达到满负荷。


这个算法(14,15,17楼),当年在我来之前,仅仅是这400W数据的计算部分(C++  +  STL),与数据库没有任何关系,在2核服务器上就需要11个小时。如果在2*16的RAC系统,就算你能达到C++的性能,也需要40分钟。在96核服务器上也需要13分钟(纯计算,不包括数据存取时间)。并行度百分之百才有可能。我测试全部时间达到2.5分钟,连我自己都很惊讶。当时给我的任务就是把计算速度提上去,算法的事不由我管。我给出的对策是,我只负责调度任务,用并行的方法解决。

从34楼的系统架构图上可以看出,我的方案,并行是多维的。
读取数据的过程,计算过程,存入数据库的过程三者完全并行,计算过程本身也是并行。而最终结果,计算时间被忽略(证实一点:在纯计算任务,如果无穷增加并行度,计算时间趋于0),整个系统的处理时间,仅仅表现为数据存取时间。
而数据库引擎的自动并行的调度过程不可能这么精致。

结论是:
1. 假如你有这个水平能够在存储过程中完成这个算法。
2. 你能发挥系统的并行效能。
3. 计算效能能够匹敌二进制指令代码。
4. 不计成本。
也不可能达到我这个架构的性能水平。数据还是拿出来外边转一圈更快,更经济。而实际上这4条,1、3、4一条都做不到。2呢,你有可能能做到,但是系统的并行度本身达不到百分百,会差很多。

当然这只是我的一个玩具,证明一种思路。如果让所有的性能敏感系统都使用这个方案是不可能的。





使用道具 举报

回复
论坛徽章:
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
45#
发表于 2021-2-7 22:36 | 只看该作者
你那96个CPU就是在推理用户行车路线吗?如果要算这个,存储过程当然不是C语言的对手。但这根本就是个伪需求,明明有更简单的解决办法你们业主却不采用。
大部分的数据库应用都不是CPU密集型的,负载一般落在IO, 所谓的计算无非就是表连接,加减乘除汇总统计四则运算。

使用道具 举报

回复
论坛徽章:
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
46#
发表于 2021-2-7 22:49 | 只看该作者
newkid 发表于 2021-2-7 22:36
你那96个CPU就是在推理用户行车路线吗?如果要算这个,存储过程当然不是C语言的对手。但这根本就是个伪需求 ...

前边说过了,两阶段双比例,一直是那么用的,现在还在用。
但是,只能做清算。
区段客流和车次客流就算不出来了,必须是CMS方法,有很多副产品的。

使用道具 举报

回复
论坛徽章:
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
47#
发表于 2021-2-8 09:36 | 只看该作者
newkid 发表于 2021-2-7 22:36
你那96个CPU就是在推理用户行车路线吗?如果要算这个,存储过程当然不是C语言的对手。但这根本就是个伪需求 ...

其他方面同意你的意见。
OCI仅在数据出入数据库,以及复杂计算方面有优势。
所以,SDBC是支持使用存储过程的。

使用道具 举报

回复

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

本版积分规则 发表回复

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