Home All Groups Group Topic Archive Search About

Why VC++ ADO runs slow on WIN2003 cluster ?

Author
15 Jul 2006 12:05 PM
ikaliy
Hello,


I have a performance problem with component written in:
- VC++ 6.0 as console application which uses
- ADO for connecting to SQLServer2000 for
- exporting data from one table into ASCII file.


Component works fine on my laptop (WinXP,1GB RAM).


But, when I run this component on Win2003 cluster on
2 CPU machine with 4GB RAM/node, performance
is 5 times worse than on my laptop.


I suppose that problem lies in ADO, but I don know
how to fix it.


To rewrite the application which will not use ADO
is not the option :-(


Does anybody experienced similar behavior ?


Help!

Author
15 Jul 2006 12:35 PM
David Browne
Show quote
"ikaliy" <ika***@yahoo.com> wrote in message
news:1152965144.892634.10100@p79g2000cwp.googlegroups.com...
> Hello,
>
>
> I have a performance problem with component written in:
> - VC++ 6.0 as console application which uses
> - ADO for connecting to SQLServer2000 for
> - exporting data from one table into ASCII file.
>
>
> Component works fine on my laptop (WinXP,1GB RAM).
>
>
> But, when I run this component on Win2003 cluster on
> 2 CPU machine with 4GB RAM/node, performance
> is 5 times worse than on my laptop.
>
>
> I suppose that problem lies in ADO, but I don know
> how to fix it.
>
>
> To rewrite the application which will not use ADO
> is not the option :-(
>
>
> Does anybody experienced similar behavior ?
>

No.  There should be nothing inherent in SQL Running on a Server (or
Cluster) or ADO to cause this.  Are all the components running on the
server?  Is the application just reading data, or writing it too?  Where is
it writing data to?

David
Author
15 Jul 2006 2:22 PM
ikaliy
David Browne je napisao/la:
> No.  There should be nothing inherent in SQL Running on a Server (or
> Cluster) or ADO to cause this.  Are all the components running on the
> server?  Is the application just reading data, or writing it too?  Where is
> it writing data to?

Application reads data from database table, make some conversion, and
write them to ASCII file. All components are running on the same server.
Author
15 Jul 2006 8:00 PM
Stu
I'm assuming that you are NOT running Windows 2003 on your laptop.  One
possible cause for the problem is write-ahead disk caching, which is
enabled by default on Windows XP, but disabled (as it should be) on
Windows 2003 Server.

Write ahead caching can substantially improve disk write times (like
writng to a flat file) but can cause havoc for many database operations
in the case of a power failure.  You may want to google write-ahead
caching  and disable it on Windows XP and retest your application.
That may give you the incentive to seek out alternate performance
tweaks.

Stu

ikaliy wrote:
Show quote
> David Browne je napisao/la:
> > No.  There should be nothing inherent in SQL Running on a Server (or
> > Cluster) or ADO to cause this.  Are all the components running on the
> > server?  Is the application just reading data, or writing it too?  Where is
> > it writing data to?
>
> Application reads data from database table, make some conversion, and
> write them to ASCII file. All components are running on the same server.
Author
16 Jul 2006 6:11 PM
ikaliy
I cannot change caching feature on my laptop and retest the
application.
But, if write caching would increase performance, then many application
would be running faster on desktop machine in comparance to server
cluster.

Any other ideas ?
Author
16 Jul 2006 6:46 PM
Stu
ikaliy wrote:
> I cannot change caching feature on my laptop and retest the
> application.
> But, if write caching would increase performance, then many application
> would be running faster on desktop machine in comparance to server
> cluster.
>

Not necessarily; if the applications are write-intensive (as it sounds
like your scenario is) then write-caching can definitely be a factor;
not every application is write-intensive, so there may be no differenc
for those apps.

Just curious, why can't you retest?

And no, that's the only idea I can think of for this issue.

Stu
Show quote
> Any other ideas ?
Author
18 Jul 2006 3:45 PM
ikaliy
It seems that ado does not scale good on multiprocessor machines.

I made simple test.

Aplication loads 600 000 records from local database table, and just
run trough the recordset without any logic or writing to the file.

Result on laptop: 60 seconds

Result on cluster: 140 seconds

What I am suppose to do ?

AddThis Social Bookmark Button