Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Oracle db table data loading is too slow in DBeaver

Tags:

oracle

dbeaver

I'm using DBeaver to connect to an Oracle database. Database connection and table properties view functions are working fine without any delay. But fetching table data is too slow(sometimes around 50 seconds).

Any settings to speed up fetching table data in DBeaver?

like image 297
Chethaka Uduwarage Avatar asked Jun 07 '17 11:06

Chethaka Uduwarage


People also ask

Why is my Oracle database slow?

The most common causes of slow performance are as follows: Excessive round-trips from the application server to the database. Ideally, each UI operation should require exactly one round-trip to the database. Sometimes, the framework will require additional round-trips to retrieve and make session data persistent.

Is Dbeaver slow?

Dbeaver is certainly not fast. It requires several seconds to start on a machine with a Core i5, 32G ram and a NVME SSD! In fact VSCode starts faster. Start time is not a great measure of overall performance.

Does Dbeaver support Oracle?

Now supported by Oracle.


Video Answer


2 Answers

Changing following settings in your oracle db connection will be faster fetching table data than it's not set.

Right click on your db connection --> Edit Connection --> Oracle properties --> tick on 'Use RULE hint for system catalog queries' (by default this is not set)

enter image description here


UPDATE

In the newer version (21.0.0) of DBeaver, many more performance options appear here. Turning on them significantly improves the performance for me

enter image description here

like image 100
Chethaka Uduwarage Avatar answered Oct 21 '22 06:10

Chethaka Uduwarage


I've never used DBeaver, but I often see applications which use too small an "array fetch size"**, which often poses fetch issues.

** Array fetch size note: As per the Oracle documentation the Fetch Buffer Size is an application side memory setting that affects the number of rows returned by a single fetch. Generally you balance the number of rows returned with a single fetch (a.k.a. array fetch size) with the number of rows needed to be fetched.

A low array fetch size compared to the number of rows needed to be returned will manifest as delays from increased network and client side processing needed to process each fetch (i.e. the high cost of each network round trip [SQL*Net protocol]).

If this is the case, you will likely see very high waits on “SQLNet message from client” [in gv$session or elsewhere].

SQLNet message from client This wait event is posted by the session when it is waiting for a message from the client to arrive. Generally, this means that the session is just sitting idle, however, in a Client/Server environment it could also means that either the client process is running slow or there are network latency delays. The database performance is not degraded by high wait times for this wait event.

like image 2
Roger Cornejo Avatar answered Oct 21 '22 06:10

Roger Cornejo