Re: ADO / Clientdataset slowness
From: brag (ggroshner_at_fnis.com)
Date: 11/23/04
- Next message: Bill Todd: "Re: ADO / Clientdataset slowness"
- Previous message: Vitali Kalinin: "Re: ADO / Clientdataset slowness"
- In reply to: Bill Todd: "Re: ADO / Clientdataset slowness"
- Next in thread: Bill Todd: "Re: ADO / Clientdataset slowness"
- Reply: Bill Todd: "Re: ADO / Clientdataset slowness"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Tue, 23 Nov 2004 13:55:15 -0500
So, are you saying that when I use the the Query and iterate through that
result set that the same network traffic doesn't occur? Wouldn't looping
through the entire Query result set bring down the same data?
I agree that pulling down 6,000 rows is generally not a good idea. To defend
myself a bit, the data being queried here is fairly static and is setup-type
data. The entire table (hence the SELECT *) is pulled down and stored in a
local area (we call it a cache) so another query for that data never has to
go across the pipe to the database again, saving huge traffic during normal
day-to-day user operations. I guess whether that's good design or not could
be debated, but this design has enabled us to performance test more than a
half-dozen times to volumes in excess of 5,000 concurrent (not connected)
database users at a time.
The reason this has become an issue for us is that when our application was
migrated from BDE to ADO, queries like this which populate our 'cache', if
it doesn't exist, have slowed by 300-500%.
"Bill Todd" <no@no.com> wrote in message
news:41a370e9$1@newsgroups.borland.com...
> The delay is caused by the ClientDataSet reading all 6,000 records from
> the server into local memory. First, that is a lot of network I/O.
> Second, the ClientDataSet was never intended to store so many records.
>
> There are two things that will improve performance. First, change the
> query from SELECT * to SELECT FIELD_FOR_MEMO so you are only returning
> one field, not the entire row. Second, change the WHERE clause to
> return a smaller result set. A well designed client/server application
> should very rarely, if ever, return more than 100 rows.
>
> --
> Bill (TeamB)
> TeamB cannot answer questions received via email
- Next message: Bill Todd: "Re: ADO / Clientdataset slowness"
- Previous message: Vitali Kalinin: "Re: ADO / Clientdataset slowness"
- In reply to: Bill Todd: "Re: ADO / Clientdataset slowness"
- Next in thread: Bill Todd: "Re: ADO / Clientdataset slowness"
- Reply: Bill Todd: "Re: ADO / Clientdataset slowness"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|