我们有一个Angular-spring引导应用程序。
创建了Spring-boot API,以从oracle数据库获取详细信息,并使用PL / SQL过程调用将其保存回oracle。
从UI进行搜索操作不会花费更长的时间,但是保存操作却花费了很长时间(超过一分钟)。在保存中,我们将多个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连接已使用带有弹簧启动自动连接的JdbcTemplate对象的JNDI创建。
任何人都可以提供任何输入信息,这可能是性能下降的原因,已经在Google上搜索了很多,但无法获得任何帮助。