PDA

View Full Version : Re: MS-SQL Driver Performance



Stephen W. Meeley
29-Apr-2005, 08:00 AM
Sam,

Sounds to me like the problem is the array, not the fact that you are
using ESQL through the driver. I'll bet if you filled an array to
600,000 (or more) items via any method the array would get slower as it
got larger (something about having to reallocate the entire array as
items get added). Although I'm way out of my depth, my (admittedly
shaky) memory is telling me that there is something about how the array
is declared that can make a difference in the speed and also that the
new array data type in VDF 11 would not suffer from the same performance
issues.

In any case, make sure the speed (or lack thereof) that you are
measuring is not due to (old style) arrays.

Best regards,

-SWM-

-----Original Message-----
From: Main Menu Systems [mailto:mainmenu@arach.net.au]
Posted At: Thursday, April 28, 2005 6:01 PM
Posted To: data-connectivity
Conversation: MS-SQL Driver Performance
Subject: Re: MS-SQL Driver Performance


Yes thats fine, although. I want to go through the result set and place
the record numbers into an array so that I can report on them using VPE
or in another case use the result set as a means of finding the records
which require updating.

As mentioned earlier traversing the result set to extract the column
value i.e dfrecnum takes much longer. What seems to happen is that it
will start going thru quite quickly, slow right down to a snails pace
then progressivley tick over until it completes. The results from my
test were MS-SQL 5 seconds and the DAC Driver 1 Minute 30 Seconds.

At the end of the day using the embeded SQL to extract the records is
far quicker than using standard constraints and selection criteria with
the embedded database.

Regards,
Sam


"Ben Weijers" <ben.weijers@dataaccess.nl> wrote in message
news:zehu2uBTFHA.4428@dacmail.dataaccess.com...
> Why count record on the client side? Create a select statement that
counts,
> much faster. Lets say we want to know how many records match the where

> clause (a=1 and b=2) you would create a statement that looks like:
>
> Select count(*)
> From T
> Where (a=1 and b=2)
>
> Just one value returns.
>
> Regards,
>
> Ben Weijers
> Data Access Worldwide
>
>