Performance issue upgrading to ODDAC 6.90 from ODAC 5.55
Posted: Tue 12 Oct 2010 08:38
Hi,
I recently upgraded a long time running Delphi 7 program to ODAC 6.90 and this resulted in very poor performance. Following is a comparison log:
MY PROGRAM BUILD WITH
ODAC 5.55.1.26 FOR DEPLHI 7
>>>> TrovaCli: 1: CC10096: 18.28.04.626
>>>> TrovaCli: 2: CC10096: 18.28.04.626
>>>> TrovaCli: 3: CC10096: 18.28.04.626
>>>> TrovaArt: 1: POMP1000: 18.28.10.593
>>>> TrovaArt: 2: POMP1000: 18.28.10.602
>>>> TrovaArt: 3: POMP1000: 18.28.10.602
>>>> DeterminaPrzList: start: POMP1000: 18.28.10.636
>>>> ApplicaRegolePrzList: start: POMP1000: 18.28.10.636
>>>> ApplicaRegolePrzList: 1: POMP1000: 18.28.10.636
>>>> ApplicaRegolePrzList: 2: POMP1000: 18.28.10.636
>>>> ApplicaRegolePrzList: 3: POMP1000: 18.28.10.636
>>>> ApplicaRegolePrzList: 4: POMP1000: 18.28.10.636
>>>> ApplicaRegolePrzList: 5: POMP1000: 18.28.10.636
>>>> ApplicaRegola: start: POMP1000: 18.28.10.636
>>>> TrovaValoreChiave: start: ITMMASTER: ITMREF_0: 18.28.10.636
>>>> TrovaValoreChiave: 1: ITMMASTER: ITMREF_0: 18.28.10.636
>>>> TrovaValoreChiave: 2: ITMMASTER: ITMREF_0: 18.28.10.644
>>>> TrovaValoreChiave: end: ITMMASTER: ITMREF_0: 18.28.10.644
>>>> TrovaPrzList: start: 1HCETR: 18.28.10.644
>>>> TrovaPrzList: 1: 1HCETR: 18.28.10.644
>>>> TrovaPrzList: 2: 1HCETR: 18.28.10.644
>>>> TrovaPrzList: end: 1HCETR: 18.28.10.644
>>>> ApplicaRegola: end: POMP1000: 18.28.10.644
>>>> ApplicaRegolePrzList: 6: POMP1000: 18.28.10.644
etc.
THE SAME PROGRAM BUILD WITH
ODAC 6.90.0.60 FOR DEPLHI 7
>>>> TrovaCli: 1: CC10096: 18.22.17.464
>>>> TrovaCli: 2: CC10096: 18.22.17.480
>>>> TrovaCli: 3: CC10096: 18.22.17.480
>>>> TrovaArt: 1: POMP1000: 18.22.22.498
>>>> TrovaArt: 2: POMP1000: 18.22.22.506
>>>> TrovaArt: 3: POMP1000: 18.22.22.506
>>>> DeterminaPrzList: start: POMP1000: 18.22.22.592
>>>> ApplicaRegolePrzList: start: POMP1000: 18.22.22.592
>>>> ApplicaRegolePrzList: 1: POMP1000: 18.22.22.592
>>>> ApplicaRegolePrzList: 2: POMP1000: 18.22.22.592
>>>> ApplicaRegolePrzList: 3: POMP1000: 18.22.22.613
>>>> ApplicaRegolePrzList: 4: POMP1000: 18.22.22.613
>>>> ApplicaRegolePrzList: 5: POMP1000: 18.22.22.613
>>>> ApplicaRegola: start: POMP1000: 18.22.22.613
>>>> TrovaValoreChiave: start: ITMMASTER: ITMREF_0: 18.22.22.613
>>>> TrovaValoreChiave: 1: ITMMASTER: ITMREF_0: 18.22.22.613
>>>> TrovaValoreChiave: 2: ITMMASTER: ITMREF_0: 18.22.22.620
>>>> TrovaValoreChiave: end: ITMMASTER: ITMREF_0: 18.22.22.620
>>>> TrovaPrzList: start: 1HCETR: 18.22.22.620
>>>> TrovaPrzList: 1: 1HCETR: 18.22.22.620
>>>> TrovaPrzList: 2: 1HCETR: 18.22.22.628
>>>> TrovaPrzList: end: 1HCETR: 18.22.22.628
>>>> ApplicaRegola: end: POMP1000: 18.22.22.628
>>>> ApplicaRegolePrzList: 6: POMP1000: 18.22.22.628
Note for example lines
>>>> ApplicaRegolePrzList: 2 ...
>>>> ApplicaRegolePrzList: 3 ...
These lines had been printed out just before and after opening a query. As you can see, the opening time increases from less than 1 millisec to almost 20 millisecs. The query executes a simple select against a synonimous that in turn refers to a view; this view includes columns from tables that are inside another database in the same Oracle server. Performance issue seems not to appear while accessing plain tables.
Using direct mode instead of Oracle client technology while accessing database does not change the performance in any apprentiable way.
Could you please help me? The customer is very upset with the performance of the new ODAC and I have to find a solution.
Silvano
I recently upgraded a long time running Delphi 7 program to ODAC 6.90 and this resulted in very poor performance. Following is a comparison log:
MY PROGRAM BUILD WITH
ODAC 5.55.1.26 FOR DEPLHI 7
>>>> TrovaCli: 1: CC10096: 18.28.04.626
>>>> TrovaCli: 2: CC10096: 18.28.04.626
>>>> TrovaCli: 3: CC10096: 18.28.04.626
>>>> TrovaArt: 1: POMP1000: 18.28.10.593
>>>> TrovaArt: 2: POMP1000: 18.28.10.602
>>>> TrovaArt: 3: POMP1000: 18.28.10.602
>>>> DeterminaPrzList: start: POMP1000: 18.28.10.636
>>>> ApplicaRegolePrzList: start: POMP1000: 18.28.10.636
>>>> ApplicaRegolePrzList: 1: POMP1000: 18.28.10.636
>>>> ApplicaRegolePrzList: 2: POMP1000: 18.28.10.636
>>>> ApplicaRegolePrzList: 3: POMP1000: 18.28.10.636
>>>> ApplicaRegolePrzList: 4: POMP1000: 18.28.10.636
>>>> ApplicaRegolePrzList: 5: POMP1000: 18.28.10.636
>>>> ApplicaRegola: start: POMP1000: 18.28.10.636
>>>> TrovaValoreChiave: start: ITMMASTER: ITMREF_0: 18.28.10.636
>>>> TrovaValoreChiave: 1: ITMMASTER: ITMREF_0: 18.28.10.636
>>>> TrovaValoreChiave: 2: ITMMASTER: ITMREF_0: 18.28.10.644
>>>> TrovaValoreChiave: end: ITMMASTER: ITMREF_0: 18.28.10.644
>>>> TrovaPrzList: start: 1HCETR: 18.28.10.644
>>>> TrovaPrzList: 1: 1HCETR: 18.28.10.644
>>>> TrovaPrzList: 2: 1HCETR: 18.28.10.644
>>>> TrovaPrzList: end: 1HCETR: 18.28.10.644
>>>> ApplicaRegola: end: POMP1000: 18.28.10.644
>>>> ApplicaRegolePrzList: 6: POMP1000: 18.28.10.644
etc.
THE SAME PROGRAM BUILD WITH
ODAC 6.90.0.60 FOR DEPLHI 7
>>>> TrovaCli: 1: CC10096: 18.22.17.464
>>>> TrovaCli: 2: CC10096: 18.22.17.480
>>>> TrovaCli: 3: CC10096: 18.22.17.480
>>>> TrovaArt: 1: POMP1000: 18.22.22.498
>>>> TrovaArt: 2: POMP1000: 18.22.22.506
>>>> TrovaArt: 3: POMP1000: 18.22.22.506
>>>> DeterminaPrzList: start: POMP1000: 18.22.22.592
>>>> ApplicaRegolePrzList: start: POMP1000: 18.22.22.592
>>>> ApplicaRegolePrzList: 1: POMP1000: 18.22.22.592
>>>> ApplicaRegolePrzList: 2: POMP1000: 18.22.22.592
>>>> ApplicaRegolePrzList: 3: POMP1000: 18.22.22.613
>>>> ApplicaRegolePrzList: 4: POMP1000: 18.22.22.613
>>>> ApplicaRegolePrzList: 5: POMP1000: 18.22.22.613
>>>> ApplicaRegola: start: POMP1000: 18.22.22.613
>>>> TrovaValoreChiave: start: ITMMASTER: ITMREF_0: 18.22.22.613
>>>> TrovaValoreChiave: 1: ITMMASTER: ITMREF_0: 18.22.22.613
>>>> TrovaValoreChiave: 2: ITMMASTER: ITMREF_0: 18.22.22.620
>>>> TrovaValoreChiave: end: ITMMASTER: ITMREF_0: 18.22.22.620
>>>> TrovaPrzList: start: 1HCETR: 18.22.22.620
>>>> TrovaPrzList: 1: 1HCETR: 18.22.22.620
>>>> TrovaPrzList: 2: 1HCETR: 18.22.22.628
>>>> TrovaPrzList: end: 1HCETR: 18.22.22.628
>>>> ApplicaRegola: end: POMP1000: 18.22.22.628
>>>> ApplicaRegolePrzList: 6: POMP1000: 18.22.22.628
Note for example lines
>>>> ApplicaRegolePrzList: 2 ...
>>>> ApplicaRegolePrzList: 3 ...
These lines had been printed out just before and after opening a query. As you can see, the opening time increases from less than 1 millisec to almost 20 millisecs. The query executes a simple select against a synonimous that in turn refers to a view; this view includes columns from tables that are inside another database in the same Oracle server. Performance issue seems not to appear while accessing plain tables.
Using direct mode instead of Oracle client technology while accessing database does not change the performance in any apprentiable way.
Could you please help me? The customer is very upset with the performance of the new ODAC and I have to find a solution.
Silvano