oracle 里边多个存储过程分开运行总时间比放在包里要短?求解

2019-03-25 13:35|来源: 网路

1、若我有procA,procB,procC这三个存储过程
2、我分别对这三个进行运行测试发现
   procA   20秒
   procB   35秒
   procC   90秒
   A+B+C = 145秒

3、若把这三个存储过程放在一个package里边通过main方法依次调用发现运行的总时间是 300秒

4、每个存储过程中都是在最后面提交并捕捉异常如:
   .....
   commit;
   exception
      when others then
        begin
          rollback;
          dbms_output.put_line('操作失败!');
        end;

问题:
    为什么会出现这种问题,是不是跟服务器的内存有关系?请指点,谢谢

相关问答

更多
  • oracle存储过程[2022-03-15]

    一种方式是你拼成字符串,然后在程序中解析。 另外一种比较简单的方面是使用临时表,存储过程调用结束后把数据放到临时表中,然后在程序中读出来就可以了。 二者都可以,你不妨试试。
  • 一台服务器上的一个用户下,可以有多个oracle实例,甚至是多个不同版本的。 可以通过创建不同的环境变量文件,来实现访问不同的实例。 比如,服务器上有10g、11g的实例,那就分别在oracle用户家目录下创建 .10g和 .11g 。里面分别是10g和11g实例所需的环境变量(path、ORACLE_SID/ORACLE_BASE/ORACLE_HOME等),在访问实例前,加载对应的环境变量(通过 ..10g或..11g)后,在就可以访问实例了。 纯手打。。。
  • 手头都是项目的不能给你,现去搜了一个给你 书的话,基本上没什么,多找写简单的例子看吧. 挺简单的.都是固定格式. create or replace procedure getstudent( in_sno in VARCHAR2(7), out_sname out VARCHAR2(20), out_sage out NUMBER(2) ) is begin select sname into out_sname sage into out_sage from student w ...
  • 一、无参程序过程语法 create or replace procedure NoParPro as ; begin ; exception //存储过程异常 ; end; 二、带参存储过程实例 create or replace procedure queryempname(sfindno emp.empno%type) as sName emp.ename%type; sjob emp.job%type; begin .... exception .... end; 三、 带参数存储过程含赋值方式 cr ...
  • 手头都是项目的不能给你,现去搜了一个给你 书的话,基本上没什么,多找写简单的例子看吧. 挺简单的.都是固定格式. create or replace procedure getstudent( in_sno in VARCHAR2(7), out_sname out VARCHAR2(20), out_sage out NUMBER(2) ) is begin select sname into out_sname sage into out_sage from student where sno = in ...
  • oracle怎么用啊[2023-09-08]

    在应用程序开发下面,有个SQL PLUS,可以在那里进行数据库的各种操作,比如对系统的管理、用户管理、数据的增删查改、各种对象的建立(表、视图、序列、同义词、存储过程等等),不过这个是纯文本的操作环境,对用户要求较高,也比较繁琐。 最好安装一个第三方的PL SQL工具,比如PLSQL DEVELOPER、TOAD都比较好用。这些都是图形界面,易于操作,对新手来说,绝对比ORACLE自带的SQL PLUS好用百倍,容易上手。 有问题请追问,如满意请采纳。
  • 用substring(字符,开始字符,结束字符) 其它方式需要用到len(字符)--字符数,right(字符,2)--右边两个字符
  • 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字 2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子: BEGIN SELECT col1,col2 into 变量1, ...
  • 下一个PLSQL Developer开发工具,清晰明了的就能看见了
  • DataGuard通常用于业务连续性,即在主服务器不可用时拥有故障转移数据库。 如果您正在寻找可伸缩性,那么您需要RAC(Real Application Clusters),其中单独主机上的多个实例将挂载并共享同一组数据库文件。 通常,如果您具有受数据库主机内存和CPU限制约束的设计良好(以数据库为中心)的应用程序,则RAC会进行扩展。 DataGuard is typically used for business continuity, i.e. to have a failover database ...