我的Oracle DB网络速度有问题。
首先,问题的本质是什么。我的计算机上有java应用程序,远程服务器上有Oracle DB。它们之间的连接速度约为2,5MB/s。我在java应用程序中执行
一个非常简单的查询,如“select id,name from table\u name”,结果集包含约60K行(大小约为1,5 Mb),并传输到我的应用程序约80秒。因此,对于探查器来说,应用程序大部分时间都花在oracle上。网小包裹接收方法。
为了进行比较,相同的查询在SQL Developer中对5000行执行0,5-0,7秒。外推到60K行,我们大约有6-8秒。
为我的应用程序执行tcpdump的结果表明,数据以大约200字节大小的块进行传输。另一方面,对于SQL开发人员,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驱动程序是否可以忽略此参数?或者我走错了路?