У меня есть oracle stored proc
, которую нужно вызвать из моей Java-программы. Я использовал CallableStatement
для передачи параметров хранимой процедуре. Я использую тонкий драйвер oracle (настроенный в сервере web logic на соответствующую запись jndi). Эта хранимая процедура не имеет никаких значений OUT. Эта хранимая процедура принимает числовое значение и выполняет множество обновлений в базе данных на основе полученного значения.
Я получаю объект соединения и затем вызываю эту хранимую процедуру в цикле (20 раз для передачи 20 чисел). Когда я напрямую вызываю эту хранимую процедуру из клиента oracle, выполнение завершается за 2-3 секунды. Однако это поведение не предсказуемо из моего java-кода. Некоторые вызовы выполняются за 30-40 секунд.
Я попытался использовать PreparedStatement
вместо CallableStatement
и смог увидеть незначительное улучшение производительности (хотя поведение все еще непоследовательное).
PreparedStatement
вместо CallableStatement
, учитывая, что storedproc не имеет никаких OUT параметров? PreparedStatement
имеет некоторый выигрыш в производительности по сравнению с CallableStatement
или это что-то, что я мог неправильно заметить?