Я перепробовал множество решений, но я все еще что-то не понимаю: я получил простую вставку (с 40 столбцами различного вида (включая BLOB-объекты), и я пытаюсь вставить этот тип передачи данных (я использую Odac из c #) массивы значений для каждого параметра.
Результатом является более или менее единичный вызов ExecuteNonQuery для 4000 строк, проблема в том, что эта вставка, не содержащая большого количества элементов, занимает последние 3 часа.
Есть предложения? источник данных взят из программного обеспечения, поэтому он не может быть связан с БД, его данные из памяти и все, что я делаю, это помещаю их в массивы и передаю их в качестве входных параметров моей команды oracle, которую я затем запускаю.
В этом случае какая-либо разница в использовании хранимой процедуры? почему?
Вставка фактически находится в транзакции, но в таблице, в которую я пытаюсь вставить, индекса нет вообще, БД - это обычная установка Oracle XE со 100 таблицами, транзакция включает в себя только эту вставку и несколько других не очень больших действий. ,
Общее количество данных, которые я пытаюсь вставить, не превышает 100 Мб ... Я не знаю, что мне следует проверять снова: (
Опять же: транзакция, похоже, не влияет на производительность и скорость не линейна, то есть 1000элементов = 10 минут, 4000элементов = 3 часа .. все с процессором 100% и огромным использованием памяти