Hello,
We experience performance problem on our EA repository, mostly felt during copy, delete and doc generation.
EA version is the 13.5.1351 for all clients. The reposory is set on a Oracle 12.1.0.2.0. The auditing option in the repository has been disabled. However, we use group locks.
The performance problem are clearly observed during copy, delete and more importantly during the doc generation. To determine the causes of the problem, we ran some tests using wireshark and oracle tools. Our conclusion is that our network and database process and response times are OK. Our hypothesis is that the problem comes from the number of queries to the db sent sequentially in small packets by the EA client to the database.
Our test consist in
- the copy of a set of objects from a diagram to new empty one
- the deletion of the same set in the target diagram
- the doc generation of the package containg the objects and the target diagram
The object set consists in 39 objects used to model a screen (33 objects from the user interface tool box and 6 from the common toolbox) and 6 links between objects. Those are simple object (only a short description, no internal constraint nor scenario). The tests were executed in our production repository. Then the total number of it could have introduced a bias.
A few numbers to justify our conclusion. The copy as new took in average 150sec per run. Wireshark shows no timeout during the process and an exchange aroung 70000 packets for a total exange of 26Mb. The max transfert speed was at 2,7Mbps. Most of the network to db access times were 1-2ms a few ones at 41ms. During the operations there were:
- 13803 select queries or sub-queries
- 173 insert
- 956 update
- 1 delete
The doc generation took in average 80sec. The network speed, server response time and tcp packet size were similar to those of the copy with an exange of 20Mb. The queries on the db consist in:
- 1114 select queries or sub-queries
- 2 update
The deletion was less critical but took in average 22sec.
Our questions are the following:
- Why is there so many sequential queries sent to the db?
- Why are so many data exchanged during those processes?
- Is there an existing solution to counter this problem?
Thank you for your help!
Jonathan