У нас есть загрузочное приложение Angular-spring.
API-интерфейсы Spring-boot создаются для получения сведений из базы данных oracle и их сохранения в oracle с помощью вызовов процедур PL / SQL.
Операции поиска из пользовательского интерфейса не занимают больше времени, но операция сохранения занимает много времени (более минуты).При сохранении мы отправляем несколько переменных SqlArrayValue в качестве параметра для вызова PL / SQL.
SimpleJdbcCall save = new SimpleJdbcCall(jdbcTemplate).withProcedureName("procedureName")
.withCatalogName("packageName").withoutProcedureColumnMetaDataAccess()
.declareParameters(new SqlParameter("parameter1", OracleTypes.ARRAY, "oracleType1"),
new SqlParameter("parameter2", OracleTypes.ARRAY, "oracleType2"),
new SqlParameter("parameter3", OracleTypes.ARRAY, "oracleType3"),
new SqlParameter("parameter4", OracleTypes.VARCHAR),
new SqlOutParameter("outParameter1", OracleTypes.NUMBER),
new SqlOutParameter("outParameter2", Types.VARCHAR));
Map<String, Object> saveResult = save
.execute(new MapSqlParameterSource().addValue("parameter1", new SqlArrayValue(detailsArray1))
.addValue("parameter2", new SqlArrayValue(detailsArray2))
.addValue("parameter3", new SqlArrayValue(detailsArray3))
.addValue("parameter4", save.getSubmitFlag()));
Производительность настроила процедуру.Прокомментировал полный код процедуры и проверил, но все равно это заняло около 1 мин.
Соединение с Oracle было создано с использованием JNDI с подпружиненным автоподключенным объектом JdbcTemplate.
Может кто-нибудь предоставить какой-либо ввод, что может быть причинойиз-за отставания в производительности много гуглил, но не смог получить никакой помощи.