| |
|
Objectives
Our Customer noticed, after he had changed his DB access module (he replaced
the old module which used ODBC with the new one that worked via ADO), the
application performance fell down significantly (became several times lower).
The aim of
|
|
this project was to investigate what caused the loss of performance, and
eliminate the problems. It was necessary to optimize either the code of the DB
access module, or the code that used this module, in order to eliminate the
loss of performance.
|
| |
|
Results
Since the DB access module was completely rewritten, the analysis of code
modifications was an ineffective measure. While implementing the project, it
was discovered that loss of performance is directly proportional to the square
of the amount of the processed data. Also, it was found out, that if the amount
of processed data grows, then the size of memory used by this application grows
too. This was not typical for this application, since it performed stream data
processing, and the memory space used should not depend on the amount of the
processed data. Thus, it was necessary to optimize the performance
|
|
of the application, as well as the memory use. By tracing the calls to the
database and debugging the application, the source of loss of performance was
detected. The wrapper performing the INSERT query caused the problems and had
to be optimized. To eliminate loss of performance, we completely redesigned the
piece of DB access module that implemented the records insertion. During this
module modification the requirement was not only to find a more effective way
of its implementation, but the way to work with all databases supported
by the module as well (the DB access module was universal, it targeted MDB, MS
SQL, and Oracle).
|