繁体   English   中英

Oracle DB网络交互非常慢

[英]Oracle DB very slow network interaction

我的Oracle DB网络速度有问题。

首先,问题的实质是什么。 我的计算机上有Java应用程序,远程服务器上有Oracle DB。 它们之间的连接速度约为2.5MB / s。 我在Java应用程序中执行一个非常简单的查询,例如“ select id,table_name中的名称”,结果集包含约60K行(大小约为1,5 Mb),并在约80秒内传输到我的应用程序。 因此,对于探查器而言,应用程序大部分时间都花在oracle.net.Packet.recieve方法上。

为了进行比较,同一查询在SQL Developer中对5000行执行0.5-0.7秒。 外推到60K行,我们大约需要6-8秒。

对我的应用程序执行tcpdump的结果显示,数据传输的大小约为200字节。 另一方面,对于SQL Developer,tcpdump显示包大小超过2000个字节。

Oracle的官方文档建议增加SDU和TDU参数,但不幸的是我无法更改数据库的配置,因此我尝试通过以下方式在客户端确定它们:

jdbc:oracle:thin:@(DESCRIPTION=(SDU=11280)(TDU=11280)(ADDRESS=(PROTOCOL=tcp)(HOST=<host>)(PORT=1521)(SEND_BUF_SIZE=11784)(RECV_BUF_SIZE=11784))(CONNECT_DATA=(SERVICE_NAME=<db>)))

但这并没有带来任何变化。 数据库或ojdbc驱动程序可以忽略此参数吗? 还是我走错路了?

事实证明,原因在于获取大小。 增加其值可使执行时间减少约100倍。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM