Влияние на производительность обработки CLOB с помощью Oracle JDBC с использованием SetBigStringTryClob - PullRequest
1 голос
/ 20 декабря 2010

Я нахожусь в процессе рассмотрения некоторого старого кода Java / JDBC для обработки CLOB в базе данных oracle. Существующий код использует подход, аналогичный подходу, упомянутому в этом вопросе .

Я нашел статью , в которой говорится:

До Oracle JDBC 10g для манипулирования данными CLOB в JDBC использовался класс расширения Oracle oracle.sql.CLOB. Но теперь Oracle JDBC 10g имеет несколько улучшений, которые упрощают манипулирование CLOB в приложениях JDBC. Это позволяет обрабатывать большие данные с использованием некоторых доступных стандартных API вместо использования классов расширения Oracle.

В статье приводится следующая информация о деталях этого улучшения:

По умолчанию метод prepareStatement.setString () позволяет обрабатывать строки размером до 32765 байт. Чтобы вставить данные размером более 32765 байт, можно установить новое свойство Connection - SetBigStringTryClob. Это вынуждает prepareStatement.setString () использовать другой недавно представленный метод OraclePreparedStatement.setStringForClob ().

Однако он предупреждает:

... обработка очень больших объемов данных таким способом, возможно, не является мудрой; потоковая передача данных является лучшей альтернативой.

Но выше - единственное предупреждение, связанное с производительностью в этой статье. Мой вопрос заключается в том, что, если весь доступ к CLOB в моем коде уже выполняется через объекты String, следует ли мне беспокоиться о любых других потенциальных проблемах производительности, которые могут быть вызваны этим изменением подхода? Другими словами, мое приложение не использует преимущества, предлагаемые потоковой передачей, поскольку оно уже всегда загружает объекты CLOB в объектах String, поэтому приведенное выше предупреждение может быть проигнорировано, поскольку в данный момент мы не стремимся к повышению производительности. Есть ли другие проблемы, связанные с производительностью, которые могут возникнуть из-за перехода на эту технику?

1 Ответ

1 голос
/ 20 декабря 2010

Какого размера ты говоришь?Я регулярно обрабатываю короткие аудиофайлы и веб-изображения в памяти без каких-либо проблем с производительностью.Это все файлы в масштабе килобайт.Я думаю, что если вы используете размеры в мегабайтах, потоковая передача будет лучше.Использование потоковой передачи в большой объект теперь довольно просто с помощью стандартизированного материала.

...