gpt4 book ai didi

java - Oracle DB 网络交互速度非常慢

转载 作者:行者123 更新时间:2023-12-02 11:46:16 24 4
gpt4 key购买 nike

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

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

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

我的应用程序的 tcpdump 执行结果显示,数据以大约 200 字节大小的 block 传输。另一方面,对于 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 倍。

关于java - Oracle DB 网络交互速度非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48184993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com