查看: 7504|回复: 7

存储过程中是否有多线程的概念

[复制链接]
论坛徽章:
22
2014年世界杯参赛球队: 哥斯达黎加
日期:2014-06-06 15:02:04沸羊羊
日期:2015-06-17 14:51:07天枰座
日期:2015-07-17 09:51:12金牛座
日期:2016-03-21 21:10:40摩羯座
日期:2016-03-29 15:07:30娜美
日期:2016-06-22 19:49:29奥运会纪念徽章:篮球
日期:2016-09-02 09:45:25奥运会纪念徽章:现代五项
日期:2016-09-23 16:25:05山治
日期:2018-01-04 21:26:162015年新春福章
日期:2015-04-27 10:18:48
跳转到指定楼层
1#
发表于 2016-3-2 10:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 IT渔夫 于 2016-3-2 10:07 编辑

在目前所做的数据库中,需要接入不同的地区(地区有上百个)的数据,针对每个地区,都会需要创建很多自动JOB,这些JOB针对不同的执行频率,有的是5分钟执行一次,有的是10分钟执行一次,有的是1个小时执行一次,有的是半天执行一次。如果直接在JOB中创建的话,会需要在JOB中创建非常多JOB(如果按100个地区,JOB按执行频率分5分钟、10分钟、半小时、1小时、半天、一天分的话,将会要创建100*6=600个JOB),管理起来非常的繁琐,有没有更简单的办法创建和管理这些JOB。


ORACLE的存储过程中,是否有多线程处理的概念? 同时处理多个地区的数据,相互间不影响。这样的话,就只需要针对不同执行频率,一个执行频率,创建一个JOB。比如在10分钟执行频率的JOB中,调用某个计算存储过程,这个存储过程中,以多线程的方式同时启动对多个地区的计算,而不同地区的计算相互不影响(而不是按顺序对不同地区进行计算,执行完一个地区,再接着执行另外一个)。
论坛徽章:
22
2014年世界杯参赛球队: 哥斯达黎加
日期:2014-06-06 15:02:04沸羊羊
日期:2015-06-17 14:51:07天枰座
日期:2015-07-17 09:51:12金牛座
日期:2016-03-21 21:10:40摩羯座
日期:2016-03-29 15:07:30娜美
日期:2016-06-22 19:49:29奥运会纪念徽章:篮球
日期:2016-09-02 09:45:25奥运会纪念徽章:现代五项
日期:2016-09-23 16:25:05山治
日期:2018-01-04 21:26:162015年新春福章
日期:2015-04-27 10:18:48
2#
 楼主| 发表于 2016-3-2 10:23 | 只看该作者
本帖最后由 IT渔夫 于 2016-3-2 11:50 编辑

用DBMS_JOB.SUBMIT 可以实现,但是会造成一个问题,每次的DBMS_JOB.SUBMIT,都是创建一个会话,如果循环100个地区,做DBMS_JOB.SUBMIT的话,就会产生100个会话。经过1分钟后,这些会话会被自动删除。因此需要把processes参数改得更大。

使用道具 举报

回复
论坛徽章:
10
射手座
日期:2015-11-23 14:22:242016猴年福章
日期:2016-02-18 09:31:30秀才
日期:2016-02-18 09:24:30双子座
日期:2016-01-27 10:10:49天枰座
日期:2016-01-13 16:00:59天枰座
日期:2016-01-13 15:48:12秀才
日期:2016-01-06 14:01:09天蝎座
日期:2015-11-25 16:11:14白羊座
日期:2015-11-24 10:35:21技术图书徽章
日期:2017-09-18 11:45:07
3#
发表于 2016-3-2 11:35 | 只看该作者
我们做的是建一张JOB表,来管理,然后写一个存储过程批量建一遍就行了。

使用道具 举报

回复
论坛徽章:
16
ERP板块每日发贴之星
日期:2007-08-24 01:03:56秀才
日期:2017-03-02 10:30:14ITPUB14周年纪念章
日期:2015-10-26 17:23:44处女座
日期:2015-09-11 10:28:03狮子座
日期:2015-09-10 09:07:23喜羊羊
日期:2015-06-24 14:33:00慢羊羊
日期:2015-06-15 14:22:442015年新春福章
日期:2015-03-12 17:22:46优秀写手
日期:2014-11-20 06:00:13茶鸡蛋
日期:2013-06-29 22:37:49
4#
发表于 2016-3-2 13:06 | 只看该作者
用dbms_parallel_execute试试~

使用道具 举报

回复
论坛徽章:
22
2014年世界杯参赛球队: 哥斯达黎加
日期:2014-06-06 15:02:04沸羊羊
日期:2015-06-17 14:51:07天枰座
日期:2015-07-17 09:51:12金牛座
日期:2016-03-21 21:10:40摩羯座
日期:2016-03-29 15:07:30娜美
日期:2016-06-22 19:49:29奥运会纪念徽章:篮球
日期:2016-09-02 09:45:25奥运会纪念徽章:现代五项
日期:2016-09-23 16:25:05山治
日期:2018-01-04 21:26:162015年新春福章
日期:2015-04-27 10:18:48
5#
 楼主| 发表于 2016-3-2 15:20 | 只看该作者
test_100 发表于 2016-3-2 13:06
用dbms_parallel_execute试试~

这个应该不行。。。

使用道具 举报

回复
论坛徽章:
519
奥运会纪念徽章:垒球
日期: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
6#
发表于 2016-3-3 01:06 | 只看该作者
IT渔夫 发表于 2016-3-2 10:23
用DBMS_JOB.SUBMIT 可以实现,但是会造成一个问题,每次的DBMS_JOB.SUBMIT,都是创建一个会话,如果循环100 ...

多线程必然要发起多个会话。
你这样动态创建一次性JOB的意义何在?还不如事先创建好。

使用道具 举报

回复
论坛徽章:
22
2014年世界杯参赛球队: 哥斯达黎加
日期:2014-06-06 15:02:04沸羊羊
日期:2015-06-17 14:51:07天枰座
日期:2015-07-17 09:51:12金牛座
日期:2016-03-21 21:10:40摩羯座
日期:2016-03-29 15:07:30娜美
日期:2016-06-22 19:49:29奥运会纪念徽章:篮球
日期:2016-09-02 09:45:25奥运会纪念徽章:现代五项
日期:2016-09-23 16:25:05山治
日期:2018-01-04 21:26:162015年新春福章
日期:2015-04-27 10:18:48
7#
 楼主| 发表于 2016-3-3 08:07 | 只看该作者
newkid 发表于 2016-3-3 01:06
多线程必然要发起多个会话。
你这样动态创建一次性JOB的意义何在?还不如事先创建好。

这些JOB太多,要事先创建,管理起来很麻烦。

使用道具 举报

回复
论坛徽章:
519
奥运会纪念徽章:垒球
日期: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
8#
发表于 2016-3-3 23:52 | 只看该作者
IT渔夫 发表于 2016-3-3 08:07
这些JOB太多,要事先创建,管理起来很麻烦。

创建完就被ORACLE管理了,你不用管。
创建的脚本你自己可以用SQL生成。

使用道具 举报

回复

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

本版积分规则 发表回复

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