Запуск сценариев sql из sqldeveloper против java-кода - PullRequest
2 голосов
/ 04 мая 2011

Я пытаюсь запустить несколько сценариев sql в Oracle 11g R2

Когда я пытаюсь запустить эти сценарии из автономного кода Java, запрос выполняется в течение 40 с лишним минут, но когда я запускаю его из sqldeveloperклиент запускается за 4 минуты

В чем может быть причина?


РЕДАКТИРОВАТЬ

Что ж, я делаю несколько сценариев обновления, вызывая процедуру pl / sql

Да, я делаю конкатенацию строк

1 Ответ

1 голос
/ 15 мая 2011

Чтобы выполнить SQL из Java, выполните следующие действия:

  • открыть соединение (700 мс)
  • подготовить заявление (80мс)
  • выполнить оператор (10 мс)

Примеры времени из моего окружения для простого утверждения. Ваше окружение будет другим, но пропорциональное количество времени будет таким же. Дело в том, что открытие соединения может быть намного дороже, чем выполнение оператора.

Убедитесь, что ваш код не открывает соединение и не подготавливает оператор внутри цикла. Это может составлять большую часть вашего времени и объяснять, почему скрипт работает медленнее, чем при запуске с SQL-разработчиком. Вы должны открыть соединение один раз, а затем повторно использовать соединение. Если вы не загружаете большой объем данных, то время, необходимое для выполнения кода на сервере базы данных, будет одинаковым, независимо от того, был ли он инициирован SQL-разработчиком или другим клиентом.

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