Лучший / быстрый подход Вставить данные Clob из CSV-файла в базу данных Oracle - PullRequest
0 голосов
/ 10 февраля 2011

Как вставить данные в файл, содержащий поле clob, в базу данных oracle.

Чтение из файла. Вставить в базу данных оракула

Возможно наличие некоторых осложнений при наличии данных о сгустках.

Спасибо, Навин

Ответы [ 3 ]

3 голосов
/ 10 февраля 2011

Я бы обычно предлагал использовать SQL * Loader или внешние таблицы в зависимости от того, размещен ли файл (или может быть) на сервере базы данных или вы собираетесь загрузить файл с клиентского компьютера.

Особенности файла управления SQL * Loader будут зависеть от формата вашего файла, но в документации есть примеры загрузки данных CLOB, хранящихся в файле данных , которые должны помочь вам начать работу.

1 голос
/ 11 февраля 2011

Минимизировать узкие места.

  • Переместите файлы, чтобы они были напрямую доступны для сервера БД по хорошей толстой трубе.
  • Требуется RAID 10 (не RAID 5) для файла данных вашей базы данных.
  • Убедитесь, что ваши файлы журнала повторов находятся на другом шпинделе, чем ваши файлы данных. Вы не хотите, чтобы они боролись за диск. Вы можете захотите отключить любое мультиплексирование файлов журнала повторов для этого. Вы (вероятно) не хотите использовать это как постоянное устройство в производственной БД, но это стоит делать, если это одноразовая работа.
  • Отключение режима архива может иметь смысл, так же как и отключение любой репликации. Опять же, вероятно, уместно, только если это один раз.

После того как ваше оборудование настроено на большую нагрузку записи, используйте SQL * Loader / внешние таблицы.

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

1 голос
/ 10 февраля 2011

Когда мы делали это для моей последней компании, мы написали программу на C # с использованием сохраненных процедур и нескольких потоков. Регулирование потоков вверх и вниз помогло с нагрузкой на базу данных. мы не могли использовать Loader из-за некоторых настроек конфигурации. Помогли и ассоциативные массивы.

В нашем случае мы не смогли провести некоторые оптимизации, потому что таблицы работали, но отключение индексов и их перестроение после загрузки может повысить производительность. Мы видели проблемы в нашей среде RAC, когда каждый rac-сервер боролся за файл индекса, секционируя и корректируя индексы, повышал производительность, но я не гуру Oracle, поэтому вы можете попросить кого-нибудь поумнее об этом.

Я знаю, что мы увидели очень низкую производительность с данными CLOB, поэтому мы изменили одно из наших полей на сжатую строку, охватывающую несколько varchar (4000), а затем заставили программу сшивать их вместе при использовании.

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