dbeaver / dbeaver

Free universal database tool and SQL client
https://dbeaver.io
Apache License 2.0
38.37k stars 3.32k forks source link

Retrive ~1000 rows with simple SELECT * takes roughly 40 seconds compared to SQLDeveloper's 0.9second it there are CLOB columns #26873

Open vilmospapp opened 2 months ago

vilmospapp commented 2 months ago

Description

Hi, Currently working on a project where I need to access Oracle Database Server. The connection goes through a VPN tunnel, but with DBeaver it's terribly slow to fetch data. e.g.: Theres a table with 896 rows, with DBeaver it takes almost a minute to fetch the data. I also installed SQLServer on my laptop and from that one, it takes only 0.9 seconds if the table has CLOB columns.

If there are no CLOB columns ~1000 rows retrieved within 0.152s with DBeaver.

I suspect some jdbc driver settings could be the problem, but in SQLDeveloper I didn't manage to extract the configs so I could apply the same configs in DBeaver.

I also collected tcpdump from each tests and I can see that for DBeaver there are lot more packets and a lot with [PSH,ACK] communication while with SQLDeveloper there's no PSH just [ACK] and TCP Window related messages.

Could someone give me some hint what could be the problem?

DBeaver Version

Community Edition 24.0.3.202404211624

Operating System

macOS Sonoma 14.3 (23D56)

Database and driver

Screenshot 2024-04-26 at 17 11 48

Steps to reproduce

  1. Have a table with ~1000 records and 2-4 CLOB fields named FOO
  2. Send a the query to Oracle : SELECT * FROM FOO;

Additional context

No response

vilmospapp commented 2 months ago

There must be also a bug or performance issue with the jdbc driver as with this one: https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc10/19.22.0.0 the query runs roughly 50% faster