我正在创建一个小型站点,用于将数据从Oracle导入SQL Server数据库,但是它花费的时间太长并且占用了太多的内存。我已经尝试使用SQL Developer和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个小时来完成并使用了200MB以上的内存(来自php.ini)。我相信查询没有问题,因为如果我必须将其与其他程序中的运行方式进行比较:
在SQL Developer上选择:1-2分钟
在SQL Server上插入:<1分钟
使用SSIS:〜10分钟
那么,有什么方法可以改善性能?