Вставка Clobs в Oracle с JDBC очень медленная - PullRequest
0 голосов
/ 23 сентября 2011

Привет, я пытаюсь вставить clob, используя jdbc, через плагин maven.Но это займет около 10 минут, чтобы вставить.Это исключительно медленно, и мне было интересно, есть ли другой способ сделать это.Гвоздь должен иметь разрывы строк.Моя вставка вызывается из файла sql и выглядит так:

INSERT INTO SCHEMANAME.ATABLENAME VALUES (1,1,'ASTRING','ANOTHERSTRING','STRING WITH LINEBREAKS

BLAH BLAH

BLAH BLAH
BLAH BLAH
BLAH','FINALSTRING',sysdate);

Ответы [ 3 ]

0 голосов
/ 25 сентября 2011

Получите отчеты AWR и ADDM и посмотрите, что ожидает вставка. При необходимости сделайте снимки вручную, чтобы проверить несколько точек данных.

10 минут для вставки одной строки означают, что в вашей БД происходит блокировка / блокировка / ожидание.

0 голосов
/ 15 августа 2013

Если вам интересно, есть ли другой способ сделать это, не могли бы вы сначала попытаться вставить нулевое значение в столбец CLOB и выполнить обновление для столбца CLOB после первой вставки?

0 голосов
/ 23 сентября 2011

CLOB, конечно, не проблема здесь. Чрезвычайно длительное время в 10 минут указывает на то, что это связано с каким-то тайм-аутом. Два из них приходят на ум:

  • Сетевое соединение ненадежно, и для передачи нескольких байтов требуется много времени.
  • Два сеанса базы данных пытаются вставить или обновить одну и ту же строку в Oracle. Если первый может выполнить вставку или обновление, но не фиксирует соединение, второй будет заблокирован до тех пор, пока первый не выполнит фиксацию, не откатится назад или не завершит сеанс.

Второй вариант более вероятен.

...