我正在使用 Oracle 数据库。
我需要顺序调用存储过程 1000 次。这个存储过程有几个输入参数和输出参数。目前我正在一项交易下进行。只需使用 java 的 for-each 循环并在其中使用 Spring 的 StoredProcedure。此事务大约需要 4 秒。而且它不是很酷。我需要加快这个交易时间。有没有办法做到这一点?
提前致谢
我正在使用 Oracle 数据库。
我需要顺序调用存储过程 1000 次。这个存储过程有几个输入参数和输出参数。目前我正在一项交易下进行。只需使用 java 的 for-each 循环并在其中使用 Spring 的 StoredProcedure。此事务大约需要 4 秒。而且它不是很酷。我需要加快这个交易时间。有没有办法做到这一点?
提前致谢
编写一个调用所有其他的包装存储过程,将所有数据作为哈希图或类似的东西输入到包装过程中(参见http://docs.oracle.com/cd/B19306_01/java.102/b14355/oraarr .htm#g1072333),将输出存储在游标中并将其返回给Java。从 Java 调用包装器。然后让数据库完成所有繁重的工作,整个工作在一个数据库 tx 中运行。
您可以批量查询(如果它是 1000 个不可预测的 ID,则使用“in”)并每次返回一个游标而不是几个 out 参数?当然,如果您的 in 参数每次调用都不同,这将不会那么容易。