[英]Postgresql NpgSql connection handling extra query and multiple close connection
[英]How to efficiently execute Postgresql query using Npgsql over a high latency connection?
通过高延迟连接(200-300毫秒)使用Npgsql选择充满字符串数据的大表时,我遇到了麻烦。 总字段值大小约为256kb。 我完全确定问题与网络传输有关,因为如果我在很短的时间内(10毫秒-20毫秒)执行本地查询,而不是通过慢速连接执行查询,则会导致该问题20-30秒。 另外,如果我使用长度(字段)测量表,则查询将在适当的时间(1-2秒)内执行。 我在不同的PC,不同的postgresql版本和npgsql上遇到此问题。 我认为问题与数据包的大小有关。也许增加缓冲区可以解决我的问题,但是,怎么办呢? 在postgres中? 还是在npgsql中?
根据评论,您正在使用SSH隧道。
像SSH一样,TCP-in-TCP隧道绝对无法承载大量数据。 期望它表现出色。 拥塞控制和窗口缩放无法正常工作,重新传输是一个问题,重新排序和重组效率低下,慢启动无法正常工作等。
只是不要那样做。 将直接TCP / IP与SSL一起使用,或使用基于UDP的隧道/ VPN。
PostgreSQL的协议对流水线非常友好,它在获取结果时要求每个字段或每行获取零往返。 您只要继续阅读,直到没有其他内容可供阅读为止。 因此往返延迟不是这里的问题。
这很可能是隧道引起的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.