0

过程的内容 - 只有两个通过 IN 参数插入的直接插入语句。当必须插入一行时,该过程将每秒执行一次。这是一种充电。如果您充值,详细信息将由其他团队通过 java (callable statement) 发送给我们。通常当 CPU 较低时,我们可以看到该过程的 10-15 个会话(在 v$session 中)并且数据将被完美插入。当 CPU 有点高时,我们可以一次看到 80-90 个会话,每个会话在 2.3 秒后失效。在其他系统的java中插入需要时间并最终超时。

我希望我清楚这一点。有没有其他方法可以纠正这个问题。除了通过程序。我尝试在 pl/sql 中使用 RECORD 概念,但实际上什么也没发生。

我的程序看起来像这样。

create procedure procedure_name (co1 IN varchar , col2 IN vvarchar.... col15 IN varchar)
x varchar2,
y varchar2,
z varchar2,
.
.
.
begin
x:=col1;
y:=col2;
.
.
.
insert into table1 (column1, column2 ,...) values (x,y,z..); commit;

if (x=15) then

insert into table2(column1,column2,..) values (x,y,z); commit;
exception
when others
..
end;
4

1 回答 1

0

应将 java 连接池化以避免这种不便。可能您的数据库一次无法容纳如此多的连接,因为她可以访问的内存是有限的。

根据您的 Java 架构,您应该了解如何将连接池化以避免每个用户拥有一个连接。也许你可以从这里开始: http: //docs.oracle.com/cd/B10500_01/java.920/a96654/connpoca.htm

否则,您的问题似乎是针对 DBA 的。您是否尝试过在https://dba.stackexchange.com/上询问它?

祝你好运 - 现在我认为无论如何你都能找到改善用户体验的方法。

于 2016-04-26T11:58:20.510 回答