Запрос больших данных занимает слишком много времени на Codeigniter - PullRequest
0 голосов
/ 08 февраля 2019

Я создаю небольшой сайт для импорта данных из 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 мин

Итак, есть ли способ улучшить производительность?

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