Subject | R: [IBO] BDE-to-IBO conversion: performance issues |
---|---|
Author | Enrico Raviglione |
Post date | 2005-04-13T13:44:03Z |
Hi Michele,
i send this issue a lot of time into this list in the past but i haven't
received an answer who satisfy my needs.
Some week ago i sended to Jason an example for investigate on this
issue.
Now i'm waiting a Jason answer ... in the next couples of days ...
Best regards,
Enrico Raviglione.
-----Messaggio originale-----
Da: Michele [mailto:lore21@...]
Inviato: mercoledì 13 aprile 2005 15.03
A: 'IBObjects@yahoogroups.com'
Oggetto: [IBO] BDE-to-IBO conversion: performance issues
Hi all,
this is my first post here, so I hope I'm not asking an overworked or
excessively generic question (I've just searched the group message base
for it, but I didn't find relevant answers). Oh, by the way, excuse my
English too: it's not my native language, I'll try to do my best. :-)
Back to the mail topic, I work as a Delphi programmer in a small
software house, and we are converting our main application database from
BDE/Paradox to Firebird: we chose IB Objects as our new database access
components, hoping to obtain, among other benefits, an overall
performance boost in database operations (which are quite frequent,
since our application is an hotel management program). For compatibility
reasons we replaced the previous standard Delphi TDataset data access
components with the corresponding TIBO equivalents, but doing so
(basically a simple 1-to-1 substitution with minor adjustments) we
immediately noticed a remarkable performance drop in all database
intensive operations! Our application database contains over 70 tables,
accessed through a TIBODatabase object which feeds and equal amount of
TIBOTables grouped in a TDataModule. Usually each form of the
application creates and uses its own private instance of the above
mentioned TDataModule, opening only the tables it requires, and since
each form is re-created each time it is needed (and re-destroyed each
time it is closed), the database tables are continuously opened and
closed, possibly from multiple TDataModules at the same time (it's an
MDI application, so multiple forms, and multiple TDataModule, can be
active simultaneously). Can this particular data access architecture be
the cause of the performance drop we recorded? It works quite well with
Delphi standard data access components and BDE/Paradox, but perhaps it's
not suited to TIBO components and Firebird... Or are we missing
something? Are there any legacy BDE operation/feature/component
properties configuration/whatsoever which is particularly inadvisable
performance-wise for TIBO components and which we should avoid at all
costs? The same operation is sometimes *several times* slower with
TIBO/Firebird than it was with BDE/Paradox, using the same code and the
same (converted) database: according to several sources I found on the
web, IBObjects are tipically much more efficient than this, so what are
we doing wrong? :-(
Any help to point us in the right direction will be _much_ appreciated,
and if you need more specific informations (code samples, tests,
whatsoever) to get a better insight on the problem, just ask, I'm at
your complete disposal!
Thank you very much,
Michele.
________________________________________________________________________
___
IB Objects - direct, complete, custom connectivity to Firebird or
InterBase
without the need for BDE, ODBC or any other layer.
________________________________________________________________________
___
http://www.ibobjects.com - your IBO community resource for Tech Info
papers,
keyword-searchable FAQ, community code contributions and more !
Yahoo! Groups Links
i send this issue a lot of time into this list in the past but i haven't
received an answer who satisfy my needs.
Some week ago i sended to Jason an example for investigate on this
issue.
Now i'm waiting a Jason answer ... in the next couples of days ...
Best regards,
Enrico Raviglione.
-----Messaggio originale-----
Da: Michele [mailto:lore21@...]
Inviato: mercoledì 13 aprile 2005 15.03
A: 'IBObjects@yahoogroups.com'
Oggetto: [IBO] BDE-to-IBO conversion: performance issues
Hi all,
this is my first post here, so I hope I'm not asking an overworked or
excessively generic question (I've just searched the group message base
for it, but I didn't find relevant answers). Oh, by the way, excuse my
English too: it's not my native language, I'll try to do my best. :-)
Back to the mail topic, I work as a Delphi programmer in a small
software house, and we are converting our main application database from
BDE/Paradox to Firebird: we chose IB Objects as our new database access
components, hoping to obtain, among other benefits, an overall
performance boost in database operations (which are quite frequent,
since our application is an hotel management program). For compatibility
reasons we replaced the previous standard Delphi TDataset data access
components with the corresponding TIBO equivalents, but doing so
(basically a simple 1-to-1 substitution with minor adjustments) we
immediately noticed a remarkable performance drop in all database
intensive operations! Our application database contains over 70 tables,
accessed through a TIBODatabase object which feeds and equal amount of
TIBOTables grouped in a TDataModule. Usually each form of the
application creates and uses its own private instance of the above
mentioned TDataModule, opening only the tables it requires, and since
each form is re-created each time it is needed (and re-destroyed each
time it is closed), the database tables are continuously opened and
closed, possibly from multiple TDataModules at the same time (it's an
MDI application, so multiple forms, and multiple TDataModule, can be
active simultaneously). Can this particular data access architecture be
the cause of the performance drop we recorded? It works quite well with
Delphi standard data access components and BDE/Paradox, but perhaps it's
not suited to TIBO components and Firebird... Or are we missing
something? Are there any legacy BDE operation/feature/component
properties configuration/whatsoever which is particularly inadvisable
performance-wise for TIBO components and which we should avoid at all
costs? The same operation is sometimes *several times* slower with
TIBO/Firebird than it was with BDE/Paradox, using the same code and the
same (converted) database: according to several sources I found on the
web, IBObjects are tipically much more efficient than this, so what are
we doing wrong? :-(
Any help to point us in the right direction will be _much_ appreciated,
and if you need more specific informations (code samples, tests,
whatsoever) to get a better insight on the problem, just ask, I'm at
your complete disposal!
Thank you very much,
Michele.
________________________________________________________________________
___
IB Objects - direct, complete, custom connectivity to Firebird or
InterBase
without the need for BDE, ODBC or any other layer.
________________________________________________________________________
___
http://www.ibobjects.com - your IBO community resource for Tech Info
papers,
keyword-searchable FAQ, community code contributions and more !
Yahoo! Groups Links