2013-06-08 2 views
0

У меня есть текстовый файл 1 ГБ, полный INSERT ROWs SQL-команд. Моя база данных назначения - это оракула DB на удаленном сервере.Как управлять файлом экспорта 1GB SQL?

Для импорта всего 1 ГБ файла сразу потребуется много времени (время загрузки + время для обработки запросов).

Каковы рекомендации и рекомендации по удалению больших файлов экспорта SQL?

+1

Вы попробовали запустить его? На самом деле у вас может не возникнуть проблема. – Mat

+0

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

+1

Не понимаю, почему этот вопрос закрыт. Это кажется совершенно ясным, и с этой проблемой я столкнулся прежде всего. –

ответ

2

Запустите файл через gzip, чтобы сжать его (если не сделать), переместите его вручную с помощью scp или около того. Затем запустите фактический импорт локально на сервере по ssh.

Главной проблемой не должен быть импорт, который выполняется довольно быстро, как правило. Одновременная загрузка и импорт может быть проблемой из-за проблем с подключением, поэтому лучше сначала загрузить файл и импортировать его.

+2

+1 Кроме того, вы можете попытаться объединить свои инструкции INSERT. Например, 'insert into your_tables select 1 from dual union all select 2 from dual ...'. Один большой оператор, как правило, работает значительно быстрее, чем несколько небольших операторов. Хотя вы также не хотите сочетать их слишком много, возможно, только десятки или сотни, или вы можете столкнуться с некоторыми проблемами производительности синтаксического анализа. В сочетании с запуском на сервере, я бы не удивился, если бы этот процесс выполнялся от 10 до 100 раз быстрее, чем раньше. –

Смежные вопросы