Проблема производительности для вызова процедуры Pl / SQL из spring-boot - PullRequest
0 голосов
/ 19 февраля 2019

У нас есть загрузочное приложение 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.

Может кто-нибудь предоставить какой-либо ввод, что может быть причинойиз-за отставания в производительности много гуглил, но не смог получить никакой помощи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...