oracle存储过程如何并行?
发布网友
发布时间:2022-04-29 03:18
我来回答
共4个回答
热心网友
时间:2022-04-09 18:59
A1 A2 A3也是存储过程吗? job其实上也只是分别调用这几个过程来执行,而不是靠执行一个A就可以让所有A1 2 3 4 并行执行的。 如果A1 2 3 4都是需要参数的话,那么你也只有用A分开给每一个都传递参数,否则的话也是不能并行执行的。 例如:
declare n number
begin
dbms_job.submit('a1;a2;a3;a4',sysdate,'trunc(sysdate+1)');
commit;
end;
/
这样会让a1 2 3 4分别同时执行,你可以做一个改动就是让a给a*传递参数的动作 直接加入到a 1 2 3 4的过程当中才可以。
热心网友
时间:2022-04-09 20:17
是可以通过JOB实现,其实就是建一个立即执行不循环的JOB例子如下:
CREATE OR REPLACE PROCEDURE A IS
V_JOB INTEGER;
BEGIN
EXECUTE IMMEDIATE 'DBMS_JOB.SUBMIT(JOB => V_JOB,
WHAT => ''A1('||参数||');'',
NEXT_DATE => SYSDATE,
INTERVAL => NULL)';
...
END A;追问A1,A2,A3 都要,请问在参数那块怎么写,我的整体要求在楼下追问里说出来了,麻烦看下
热心网友
时间:2022-04-09 21:51
v_job number;
sys.dbms_job.submit(v_job,'A1') ; --立即执行
sys.dbms_job.submit(v_job,'A2',sysdate+5/24/60) ; --5分钟后执行
sys.dbms_job.submit(v_job,'A3',sysdate+1/24/60) ; --1分钟后执行
....
热心网友
时间:2022-04-09 23:43
可以DEBUG一下,如果是用PLSQLDEVELOPER的话,可以设断点在可能比较慢的地方用F9跟进去。
oracle存储过程如何并行?
A1 A2 A3也是存储过程吗? job其实上也只是分别调用这几个过程来执行,而不是靠执行一个A就可以让所有A1 2 3 4 并行执行的。 如果A1 2 3 4都是需要参数的话,那么你也只有用A分开给每一个都传递参数,否则的话也是不能并行执行的。 例如:declare n number begin dbms_job.submit('a1;a2;a...
多线程调用oracle存储过程是否并发执行?
所谓的oracle存储过程,无非就是把大量的SQL集中在一起加入了变量循环等。简单地看它就也就是对几个数据库对象的访问。我们知道oracle数据库对象的访问是有锁机制的,同一时间内 只有一个用户能访问这样的对象,(最底的行级锁)可以想象如个2个人同时对一个对象的同一个内容进行处理那 是不可能的。...
多线程oracle调用存储过程排队吗
在Oracle中,如果多个线程同时调用存储过程,Oracle数据库会将这些调用请求放入到一个请求队列中,然后逐个执行存储过程,直到所有请求被处理完成。因此,多线程Oracle调用存储过程会排队执行,以确保每个调用请求都能被正确处理,保证数据的一致性和完整性。在处理大量请求时,可以通过优化存储过程和调用方式等方...
oracle中如何执行已经写好的存储过程,就exec 一下?好像不行哦,请举例...
这个得看你在哪里执行了,如果是命令窗口用 exec 存储过程名 就可以。如果是pl/sql窗口就得用 beging 过程名 end; 包含起来作为匿名块来执行。
各位大神们,我想在oracle后台执行多个存储过程,请问要怎么做呢?
你是需要定时执行吗?你说的后台执行应该就是存储过程自动执行吧:1、定时执行你可以创建job,可以定时每个多久执行一次存储过程(job中可以执行多个存储过程,只需要使用‘;’隔开);2、你可以将你所有的存储过程打包(pkg);
oracle中,一个存储过程怎么调用另一个存储过程?这两个存储过程都带有...
直接调用就可以了。举个例子把 B 存储过程调用A 存储过程。PROCEDURE A (p_1 in number,p_2 out number)is v_1 number;begin V_1:=p_1;p_2:=v_1;end A;(1)如果A 与B同在一个package里面的话。那么 B里面直接可以调用A PS:如果A,B在同一个Package 中无法调用的话,那么很...
oracle在写存储过程时怎样将变量和字符串进行连接?
变量直接写,要连接字符串的话,用 || 这个符号,后面的字符串用单引号引。变量 V_str 字符串' select emp from table where '连接后为:' select emp from table where ' || V_str
ORACLE多人同时执行一条存储过程,会不会有影响?
你这样属于2个事务在操作一个表。如果表中有唯一键,会有一个过程失败的。如果没有唯一键,会写入20000条记录。但是如果存储过程里操作的表是动态传进去的。如果表名不同,同时执行多个这个存储过程是没有影响的。
Oracle存储过程并发问题
2.笨的方法:建议采用信号量。举例如下:create signal_flag (signal number(1));insert into signal_flag values(1);在每次查询表有无记录前,加入语句 select signal from signal_flag where signal=1 for update;select count(1) int var_cnt from tab1 ;if var_cnt =0 then insert...endif...
Oracle 存储过程列的字段合并
拼以下不就好了。比如:select a,b,c from table;改成:select a+b as '合并',c from table;