Загрузчик SQL * завис после загрузки 4,2 миллиарда записей - PullRequest
6 голосов
/ 18 августа 2011

Мы застряли с проблемой в загрузчике SQL. Мы пытаемся загрузить файл данных с примерно 4,6 миллиардами строк (почти 340 ГБ) в две таблицы оракула на основе некоторых условий при использовании Sql Loader. Но после загрузки 4,2 миллиарда записей процесс загрузки SQL завершается без каких-либо ошибок, даже если остальные записи еще не загружены.

Нет записей с ошибками или плохих записей. Есть ли ограничение на количество записей, которые может загружать SQL Loader? Не смог найти нигде такую ​​документально подтвержденную вещь. Пожалуйста, дайте мне знать, если у кого-нибудь есть подсказки по этому вопросу.

Спасибо !!

Ответы [ 2 ]

4 голосов
/ 18 октября 2011

Значение 2³² равно 4294967295, что близко к 4,2 млрд.

Поэтому из описания вашей проблемы я могу только сказать, что возможно Значение по умолчанию sqlldr для LOAD на самом деле2³² - 1, и это значение сохраняется в 32 битах.

1 голос
/ 24 сентября 2013

Я проверил гипотезу Бенуа о том, что внутреннее целое число LOAD слишком мало для строк + 4.2bil.Это верно.Когда я разрезаю исходный файл на файлы со строками -4.2bil и вставляю их, используя append, вставка работает отлично.

Итак, это не ограничение базы данных, как предлагается здесь: https://forums.oracle.com/message/11201322 (также опубликовал мои выводы там)

Также на форуме Oracle есть предложение BluShadow попробовать и использовать внешние таблицы.Еще не проверял.

...