Book a Demo

Author Topic: Optimizing *.feap performance via firebird.conf  (Read 11735 times)

Richard Freggi

  • EA User
  • **
  • Posts: 498
  • Karma: +18/-7
    • View Profile
Optimizing *.feap performance via firebird.conf
« on: January 11, 2021, 04:02:32 pm »
My *feap file is 800MB and model updates or searches on my adequately powerful Windows 10 professional PC with SSD drive take several seconds.
I googled around and realized the Firebird configuration file firebird.conf which is in the EA directory can be tweaked.
The file itself has lots of comments and explanations which is nice:  does anyone have experience with what tweaks are best?  Thanks!

Viking

  • EA User
  • **
  • Posts: 478
  • Karma: +2/-2
    • View Profile
Re: Optimizing *.feap performance via firebird.conf
« Reply #1 on: January 17, 2021, 09:00:15 pm »
My *feap file is 800MB and model updates or searches on my adequately powerful Windows 10 professional PC with SSD drive take several seconds.
I googled around and realized the Firebird configuration file firebird.conf which is in the EA directory can be tweaked.
The file itself has lots of comments and explanations which is nice:  does anyone have experience with what tweaks are best?  Thanks!

I am not an expert in this area. But nobody answered, so maybe my small knowledge helps at least a little.

What kind of searches are you using? The standard search of EA creates XML as a result. Creating XML is very slow.

I am currently using a MySQL-DB of similar size and queries also take seconds.

So I think the reason is more EA than the database.

As you said, feap is Firebird (feap = Firebird database Enterprise Architect Project). So there are plenty of recommendations to tune the database (e.g. https://ib-aid.com/en/articles/45-ways-to-speed-up-firebird-database/). But I never tried any. Maybe because I experienced the same in all databases (MySQL, Oracle, SQLServer, eap, and feap).
« Last Edit: January 18, 2021, 12:22:06 am by Viking »

Richard Freggi

  • EA User
  • **
  • Posts: 498
  • Karma: +18/-7
    • View Profile
Re: Optimizing *.feap performance via firebird.conf
« Reply #2 on: January 18, 2021, 12:57:45 am »
Hello and thanks for your reply
All sort of searches.  Deleting any element in a diagram or project explorer takes several seconds (maybe 7-8 seconds +?).  Adding is fast, maybe 1 or 2 seconds.  I use standard searches and my own custom SQL searches, they run much slower than on my smaller (50MB) *.feap models, especially if for example I filter by package (any database is slower on filter condition, just wanted to know if this can be optimized via configuration). 

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Optimizing *.feap performance via firebird.conf
« Reply #3 on: January 18, 2021, 03:37:01 am »
Hello and thanks for your reply
All sort of searches.  Deleting any element in a diagram or project explorer takes several seconds (maybe 7-8 seconds +?).  Adding is fast, maybe 1 or 2 seconds.  I use standard searches and my own custom SQL searches, they run much slower than on my smaller (50MB) *.feap models, especially if for example I filter by package (any database is slower on filter condition, just wanted to know if this can be optimized via configuration).
Hey, where are you located? 2 seconds and fast for an addition?

What is the size of your DB (in # of elements)?

q.

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Optimizing *.feap performance via firebird.conf
« Reply #4 on: January 18, 2021, 04:52:27 am »
I'm guessing .feap databases are just not meant for large models like that.

1-2 seconds is ridiculously slow for adding an element. 0.1 or 0.2 seconds might be acceptable.

The best results in terms of performance I've heard of are with MySQL or SQL Server. Almost all of my clients are on SQL Server.

But whatever you do, don't choose Oracle. That just doesn't work well with EA.

Geert

Sunshine

  • EA Practitioner
  • ***
  • Posts: 1353
  • Karma: +121/-10
  • Its the results that count
    • View Profile
Re: Optimizing *.feap performance via firebird.conf
« Reply #5 on: January 18, 2021, 05:44:51 am »
We use SQL Server and its pretty fast. As Geert says definitely avoid Oracle. Tried using Oracle a number of different times in a number of different organizations as the DB Admin's claim its better however, with all their wizardy were unable to make it perform to an acceptable level.
Happy to help
:)

Viking

  • EA User
  • **
  • Posts: 478
  • Karma: +2/-2
    • View Profile
Re: Optimizing *.feap performance via firebird.conf
« Reply #6 on: January 18, 2021, 06:28:09 am »
Or use free MariaDB. It is based on the commercial MySQL.

As soon as set up it is as convenient as EAP or FEAP. "Versions" can be copied as files to a safe place and copied backed if required.

Your inserts on feap are far to slow.

Richard Freggi

  • EA User
  • **
  • Posts: 498
  • Karma: +18/-7
    • View Profile
Re: Optimizing *.feap performance via firebird.conf
« Reply #7 on: January 18, 2021, 01:50:01 pm »
So this is off topic (no info on *conf file settings) but still interesting and useful.

If you want to manage an important, large model on your own PC and not on a network / remote database, THERE SEEM TO BE NO ROBUST SOLUTION FOR EA.

MS access is a bit of a joke overall for example it will not allow you to concatenate strings over 256 characters which severely impacts queries on the model.

Firebird has above mentioned limitations and the EA interface also has a bug (see my earlier posts on this), it drops the last character of strings when queried from EA.

While I'm still interested in Firebird conf settings, I would like to repeat my earlier post to Sparxians, WHY EA DOES NOT HAVE SQLITE AS THE DEFAULT REPOSITORY FOR OWN-PC (non-networked, single user) MODELS?  SQLite is far more efficient than Firebird and Access from all points of view. >:(
« Last Edit: January 18, 2021, 01:52:50 pm by Richard Freggi »

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: Optimizing *.feap performance via firebird.conf
« Reply #8 on: January 18, 2021, 02:35:37 pm »
If you want to manage an important, large model on your own PC and not on a network / remote database,
In that situation I would be configuring a local MariaDB server.

As for why not SQLite? I asked that question many years ago when Firebird support was added as a local repository type. All I remember of the answer was that there was something that EA did that wasn't supported. Unfortunately I can't tell you what that was.

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Optimizing *.feap performance via firebird.conf
« Reply #9 on: January 18, 2021, 03:55:36 pm »
I use a local SQL Server Express for EA.

Geert

Richard Freggi

  • EA User
  • **
  • Posts: 498
  • Karma: +18/-7
    • View Profile
Re: Optimizing *.feap performance via firebird.conf
« Reply #10 on: January 18, 2021, 08:02:12 pm »
If you want to manage an important, large model on your own PC and not on a network / remote database,
In that situation I would be configuring a local MariaDB server.

As for why not SQLite? I asked that question many years ago when Firebird support was added as a local repository type. All I remember of the answer was that there was something that EA did that wasn't supported. Unfortunately I can't tell you what that was.

Eve, thank for chiming in.
"Unfortunately I can't tell you what that was." I bet if you ask that question now you will get the same answer.  SQLite is very very capable.  In any case as Sparx team knows that the Firefox interface in EA has bugs, and Access is not a professional DBMS (I'm being polite here), and setting up a database server in company PC just to use your local file is not reasonable and risky from security point of view - SQLite is serverless which is another major benefit.  Maybe Sparxians can think about it again?

Viking

  • EA User
  • **
  • Posts: 478
  • Karma: +2/-2
    • View Profile
Re: Optimizing *.feap performance via firebird.conf
« Reply #11 on: January 19, 2021, 03:15:56 am »
So this is off topic (no info on *conf file settings) but still interesting and useful.

Yes, I am sorry. But I use eap and feap only for testing and other ones for big models. So I have no need to tune feap.

I run DatabaseServers and even ApplicationServers on my desktop.
« Last Edit: January 19, 2021, 03:18:09 am by Viking »