Я создаю небольшой сайт для импорта данных из Oracle в базу данных SQL Server, но он занимает слишком много времени и использует слишком много памяти.Я попытался выполнить запрос с помощью разработчика SQL и SQL Server Management, и оба выполняются быстро и без ошибок.
Я использую приведенный ниже код для извлечения данных из базы данных Oracle:
$data = $this->oracle->query($query);
$oracle_data = $this->model_oracle->get_headers($a)->result_array();
И используя код ниже, чтобы вставить его в SQL Server:
$sqlsrv->trans_start();
$sqlsrv->truncate('tr_header');
$sqlsrv->insert_batch('tr_header',$header_oracle);
$sqlsrv->trans_complete();
Нет расчета или обработки данных, только получить и вставить.Данные содержат около 140 000 строк, и их заполнение заняло более 1 часа и заняло более 200 МБ памяти (из php.ini).Я считаю, что в моем запросе нет проблем, потому что, если мне нужно сравнить его с тем, как он работал в другой программе:
Выбор в SQL Developer: 1-2 минуты
Вставка в SQL Server:<1 мин </p>
Использование SSIS: ~ 10 мин
Итак, есть ли способ улучшить производительность?