有人在我的工作场所设置了一个服务器,允许Postgres服务器使用外部数据包装器从MS-SQL服务器中提取数据,如下所示:
https://github.com/GeoffMontee/tds_fdw
它工作得很酷,直到我们试图在10万年内提取或查询大量记录。Postgres只是把我们踢出去,就像这样:

apitransform=# select count(*) from fdw_ThingInstance;
NOTICE:  DB-Library notice: Msg #: 5701, Msg state: 2, Msg: Changed database context to 'master'., Server: abcdefg, Process: , Line: 1, Level: 0
NOTICE:  DB-Library notice: Msg #: 5703, Msg state: 1, Msg: Changed language setting to us_english., Server: abcdefg, Process: , Line: 1, Level: 0
NOTICE:  DB-Library notice: Msg #: 5701, Msg state: 1, Msg: Changed database context to 'abcdefg_staging'., Server: abcdefg, Process: , Line: 1, Level: 0
NOTICE:  DB-Library notice: Msg #: 5701, Msg state: 2, Msg: Changed database context to 'master'., Server: abcdefg, Process: , Line: 1, Level: 0
NOTICE:  DB-Library notice: Msg #: 5703, Msg state: 1, Msg: Changed language setting to us_english., Server: abcdefg, Process: , Line: 1, Level: 0
NOTICE:  DB-Library notice: Msg #: 5701, Msg state: 1, Msg: Changed database context to 'abcdefg_staging'., Server: abcdefg, Process: , Line: 1, Level: 0
The connection to the server was lost. Attempting reset: Succeeded.

我们很难填充我们的记录,因为这感觉好像有一个硬性的限制是由这些系统之一。
一个线索是,当FreeTDS设置为4.2时,我们能够大致正常地查询,或者至少能够统计记录。但是,我们遇到了UTF字符编码问题。所以,我们把它设置为7.0和8.0,这就解决了UTF的问题,但是现在我们一次能拉多少车是有限制的,而且这个限制是不可预测的,经常会打破。
有人知道这是什么交易吗?只是一个小地方?

最佳答案

尝试使用freetds.conf中的“initial block size”参数,我在5120中设置了这个参数,有时甚至更大。

http://www.freetds.org/userguide/seemtooslow.htm

10-01 08:36
查看更多