Author Topic: Performance Issues - EAP vs. Oracle  (Read 7983 times)

crd

  • EA User
  • **
  • Posts: 34
  • Karma: +0/-0
    • View Profile
Performance Issues - EAP vs. Oracle
« on: May 22, 2010, 04:27:23 am »
I am working with EA 7.5 and have written a Word Report pulling data from the EA repository using the EA API.  The response time running my word report against an EAP returns results in less than a minute while the exact same data (data transferred into the Oracle Database) in the Oracle database takes upward to 9 minutes.  A trace run on the report indicates calls being made to the database that are terribly inefficient.  It appears that all of the SQL queries I am making using Repository.SQLQuery are returning fine.  It appears to be database communication using the EA API that is causing issues.  Is this a know issue?  Anyone have any idea if there are ea api calls I should be avoiding for performance sake?

Thank you!
Carol

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13404
  • Karma: +567/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Performance Issues - EAP vs. Oracle
« Reply #1 on: May 25, 2010, 04:11:53 pm »
Carol,

First of all I would try to upgrade to 8.0. (and make sure you upgrade the data schema too).
There have been some serious performance improvements in 8.0.

Secondly, cache everything you can. If you know you will be needing all elements of a package (recursive) then I would first get those using Repository.GetElementSet. (you can pass a query or a list of id's to that method)

Furthermore there are some collections that are significantly slower then others. Element.Issues is one of those.

Be aware that some EA.Collections still go back and forth to the database while you are iterating them. So whenever you first iterate an EA.Collection, put the individual objects into a sensible type of collection, and use that from there on.

I would use profiling (if you can) to figure out what exactly is taking the most time, and start on those areas.

Geert

crd

  • EA User
  • **
  • Posts: 34
  • Karma: +0/-0
    • View Profile
Re: Performance Issues - EAP vs. Oracle
« Reply #2 on: May 28, 2010, 02:17:30 am »
Thanks for your reply.  I will begin by saying that this is not my area of expertise.  I am convinced that it is an issue with the connection to Oracle.  We are running EA and Word(my report is written using the EA API in a Word Template) on a Citrix Server.  

1.  I am wondering if those that are successfully running EA on an Oracle database can explain to me how you are connecting.

2.  Any idea about the following?  It appears that everytime EA issues a call to grab something from the EA database, verification SQL is being run against the Oracle database.  After working with the Oracle DBAs it appears that 90% of processing time is spent on these statements.  The following are the three statements:

select * from (select null TABLE_CATALOG, ac.owner TABLE_SCHEMA, ac.table_name TABLE_NAME, acc.column_name COLUMN_NAME, null COLUMN_GUID, null COLUMN_PROPID, acc.position ORDINAL from all_constraints ac, all_cons_columns acc where ac.owner = acc.owner and ac.table_name = acc.table_name and ac.constraint_type = 'P' and ac.constraint_name = acc.constraint_name) DBSCHEMA_PRIMARY_KEYS  WHERE TABLE_SCHEMA = 'E_ARCHITECT' AND TABLE_NAME = 'T_OBJECT' order by 3, 4 ;

select * from (select null TABLE_CATALOG, ac.owner TABLE_SCHEMA, ac.table_name TABLE_NAME, acc.column_name COLUMN_NAME, null COLUMN_GUID, null COLUMN_PROPID, acc.position ORDINAL from all_constraints ac, all_cons_columns acc where ac.owner = acc.owner and ac.table_name = acc.table_name and ac.constraint_type = 'P' and ac.constraint_name = acc.constraint_name) DBSCHEMA_PRIMARY_KEYS  WHERE TABLE_SCHEMA = 'E_ARCHITECT' AND TABLE_NAME = 'T_DIAGRAMOBJECTS' order by 3, 4 ;

select * from (select null TABLE_CATALOG, ac.owner TABLE_SCHEMA, ac.table_name TABLE_NAME, acc.column_name COLUMN_NAME, null COLUMN_GUID, null COLUMN_PROPID, acc.position ORDINAL from all_constraints ac, all_cons_columns acc where ac.owner = acc.owner and ac.table_name = acc.table_name and ac.constraint_type = 'P' and ac.constraint_name = acc.constraint_name) DBSCHEMA_PRIMARY_KEYS  WHERE TABLE_SCHEMA = 'E_ARCHITECT' AND TABLE_NAME = 'T_OBJECT' order by 3, 4 ;
select * from (select null TABLE_CATALOG, idx.table_owner TABLE_SCHEMA, idx.table_name TABLE_NAME, null INDEX_CATALOG, idx.owner INDEX_SCHEMA, idx.index_name INDEX_NAME, null PRIMARY_KEY, decode(idx.uniqueness, 'UNIQUE', -1, 0) UNIQUE_,null CLUSTERED,null TYPE, null FILL_FACTOR, idx.initial_extent INITIAL_SIZE, null NULLS, null SORT_BOOKMARKS, -1 AUTO_UPDATE, 2 NULL_COLLATION, col.column_position ORDINAL_POSITION, col.column_name COLUMN_NAME, null COLUMN_GUID, null COLUMN_PROPID, 1 COLLATION, null CARDINALITY, null PAGES, null FILTER_CONDITION, null INTEGRATED from all_indexes idx, all_ind_columns col where idx.owner = col.index_owner and idx.index_name  = col.index_name and idx.table_owner = col.table_owner and idx.table_name  = col.table_name ) DBSCHEMA_INDEXES  WHERE TABLE_SCHEMA = 'E_ARCHITECT' AND TABLE_NAME = 'T_OBJECT' order by 8, 10, 5, 6, 17 ;

Dave_Bullet

  • EA User
  • **
  • Posts: 295
  • Karma: +0/-0
    • View Profile
Re: Performance Issues - EAP vs. Oracle
« Reply #3 on: June 10, 2010, 02:24:09 pm »
I have huge performance issues with EA 7.5 and EA 8.0.

We have a SQL Server 2000 in a remote data centre (10Mbit bandwidth over the WAN).  The SQL Server is shared with other apps.

Unless you are dealing with an RDBMS server locally (that is within the same LAN segment to all but eliminate network latency), EA is a terribly chatty client server application.  It's a serious design flaw in the product IMHO, one Sparx has failed to fix in Version 8.0.  Before I shoot my mouth off, I should do a SQL trace to see what is being generated.  My before and after comparisons on EA 7.5 to EA 8.0 have shown no gains though, so I suspect the same inefficient, over the top SQL is being executed, rather than packaged into a smaller number of stored procedure calls to minimise latency impact.

I have yet to try the WAN optimiser to see if it helps.  maybe it might help your situation too.
"I know I'm close to a good design, but it's like the balloon animals, squeeze in one spot and the problem moves down the line"

JL

  • EA Novice
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Performance Issues - WAN Access to MS SQL Srv
« Reply #4 on: December 01, 2010, 08:55:22 am »
We are also having performance issues when accessing our Sparx EA SQL database across a WAN.  We feel that Latency is the issue with users experiencing 45ms to 90ms round trip delays depending on location.  Just connecting to the server from the Corporate version of Sparx EA can take several minutes and importing a large design from a local .xmi file can take over an hour.  Clients are running Windows XP.  We have both a Windows 2003/SQL 2005 and a Windows 2008/SQL 2008 server enviornment.  The Windows 2003 server sets up a TDS transport session with the client and the Windows 2008 servers uses SMB 1.0.  

What are the best ways to overcome the slow response.

JL

  • EA Novice
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Re: Performance Issues - EAP vs. Oracle
« Reply #5 on: December 01, 2010, 08:59:50 am »
Dave,
We are having the same problems you mentioned in  your note about response time/performance issues.  Our configuration is very similar with high latency on the WAN between the clients and the SQL servers.  

Did you get this problem resolved inyour enviornment?

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13404
  • Karma: +567/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Performance Issues - EAP vs. Oracle
« Reply #6 on: December 01, 2010, 05:06:12 pm »
JL, if you're having performance issues with a WAN configuration I would definitely try the WAN optimizer.
That's what it was created for after all.

Geert

JL

  • EA Novice
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Re: Performance Issues - EAP vs. Oracle
« Reply #7 on: December 02, 2010, 03:33:30 pm »
Geert,
Yes but in reading the description on the WAN Optimizer it indicates that its real advantage is in compressing the response back from the SQL server to the client.  My performance issue is mostly related to importing xmi files into the SQL server from the client.  I am not sure I will see much improvment when uploading files to the database server from the client.  Do you have any experience in this area?
Thanks...