Производительность OracleBulkCopy

Мое приложение C # .NET записывает миллионы записей во временную таблицу с помощью OracleBulkCopy. Каждый раз, когда приложение имеет 20000 записей или более в памяти, оно вызывает OracleBulkCopy, чтобы записать их все в одном пакете (я использую размер пакета = 0). В начале таблица пуста, и для записи всего пакета требуется всего 2 секунды. процесс время для записи пакета увеличивается. После 2 000 000 записей каждый вызов занимает почти 25 секунд. Я использую параметры OracleBulkCopy по умолчанию. Выполняя некоторые тесты, когда таблица достигает 40 000 000, требуется почти 3 минуты, чтобы написать 20 000 записей .

Я хотел бы знать, есть ли какие-нибудь рекомендации (я ничего не нашел по этому поводу), чтобы поддерживать почти постоянное время для каждого вызова. Я что-то делаю не так?

5
задан Eduardo Mauro 2 July 2011 в 12:22
поделиться