2015-07-30 2 views
0

Содержание процедуры - всего два оператора прямой вставки, которые вставляются через параметры IN. Процедура будет ударяться каждую секунду, когда должна быть вставлена ​​строка. Это своего рода пополнение. Если вы перезаряжаете, детали будут отправлены какой-либо другой командой нам через java (вызываемый оператор). Обычно, когда процессор низкий, на секунду мы можем увидеть 10-15 сеансов для этой процедуры (в v $ session), и данные будут вставлены отлично. Когда процессор немного высок, мы можем видеть 80-90 сеансов одновременно, когда каждый сеанс становится недействительным через 2,3 секунды. требуется время для вставки и время ожидания в Java в другой системе.Oracle PL/SQL - процедура, вызываемая другой командой для вставки данных. Процедура вызывается из Java

Надеюсь, я разъяснил это. Есть ли другой способ исправить эту проблему. Кроме процедуры. Я попытался использовать концепцию RECORD в pl/sql, но ничего не произошло.

Моя процедура выглядит просто так.

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; 
+0

I thnk Это больше проблема с настройкой базы данных, чем проблема с кодом. –

+0

Почему вы вставляете col1 в другое имя переменной перед вставкой? Конечно, вы можете просто написать 'insert в значения table1 (col1, col2, col3 ...);' –

ответ

0

Соединение с использованием Java должно быть объединено во избежание таких неудобств. Вероятно, ваша база данных не может поддерживать так много соединений за раз, потому что память, к которой у нее есть доступ, ограничена.

В зависимости от вашей архитектуры Java вы должны узнать, как объединить свои соединения, чтобы не иметь одного пользователя. Возможно, вы можете начать здесь: http://docs.oracle.com/cd/B10500_01/java.920/a96654/connpoca.htm

В противном случае, похоже, ваш вопрос относится к DBA. Вы пробовали просить его по телефону https://dba.stackexchange.com/?

Удачи - на данный момент я думаю, что вы все равно найдете что-то, чтобы улучшить свой пользовательский интерфейс.