如果选择了太多记录,则与PostgreSQL相连的SQL Server链接服务器会导致SQL Server实例崩溃

时间:2019-01-08 13:25:07

标签: sql-server postgresql odbc

我有一个SQL Server 2014服务器上运行的Windows 2008R2实例。我也有Postgres 11在该服务器上运行。我使用Stack Builder安装了psqlODBC(64位)v10.02.0000-1,并且将SQL Server链接服务器配置为Postgres ODBC驱动程序。

然后,我运行以下命令将SQL Server数据库中的数据插入到Postgres数据库中具有相同布局的表中。

insert openquery([LS_PG_RAMM], 'select * from public.vehpos')
select *
from VEHPOS where idvehpos > 0 and idvehpos < 60000
order by idvehpos

如果我一次选择的记录少于7万条,数据传输将按预期完成。如果我超过该数量,则会收到以下消息:

Msg 109, Level 20, State 0, Line 6
A transport-level error has occurred when receiving results from the server. (provider: Shared Memory Provider, error: 0 - The pipe has been ended.)

SQL Server实例(服务)死亡,必须重新启动。之后,我可以运行下一批7万条以下的记录。

我在Google上搜索了很多,很多人都遇到了这个问题,特别是MySQL和Oracle。我已经应用了所有可以找到的建议,包括但不限于:

EXEC sp_configure 'remote query timeout', 0;  
RECONFIGURE WITH OVERRIDE;  
GO  

但是问题仍然存在。鉴于我有8亿条记录要转移到Postgres,在解决问题之前,这将非常繁琐。

0 个答案:

没有答案