Oracle 和 MS SQL 通过 VPN 查询非常慢

Oracle and MS SQL Query very slow over VPN

我有一个 C# 程序,它使用 Oracle Driver 到 Oracle Database 12c 企业版 12.1.0.2.0 64 位。 在 LAN 上,程序中的 select 大约需要 2 秒。如果我通过 VPN 隧道建立连接,同样 select 需要大约 48 秒。
如果我 ping 数据库:
局域网:0.206 毫秒
VPN:53 毫秒

为了确保我也使用 Oracle SQL Developer 19.2.1 进行了测试,它显示了大致相同的结果。

我尝试将客户端的 MTU 降低到 1400,因为一些网站提到碎片是问题的原因,但这并没有改变任何东西,至少在我配置它的方式上。可能是什么原因造成的?

网络延迟与处理查询和获取数据所需的 SQL* 网络往返次数有关。最小化网络延迟的一种方法是确保将 C# 程序中的数组 fetch size 设置为较大的数字。假设它是 10,那么您将需要 5,200 次网络往返才能 return 52,000 行。而如果将其设置为 5,000,则您只需要 11 次网络往返。

对于 MS SQL 数据库,可以在连接字符串中使用 Packet size