ADO.NET vs. RDS

  • Thread starter Thread starter Aaron
  • Start date Start date
A

Aaron

The current version of my company's app uses RDS objects
for all of our data access/updates. Our new version of
the app will be built in .NET. In playing around with
ADO.NET, it seems to me, it seems to me that ADO.NET is a
TON slower than RDS was. Can anybody help me set up
ADO.NET to work faster for me. I don't need any data
binding or anything like that. Ideally I just want to
grab a recordset, send that to the client, and when/if
needed I'll post the changes back to the DB. Any help
would be greatly appreciated!


-Aaron
 
Aaron:

That's a big order b/c the cause of the performance could
be many things. Assuming the queries are the same and
that's not the bottleneck, remember that each time you
build a datatable and/or dataset, you are making a
resident cache of the data... So if you query a table
with 10 columns and 100000 rows on your db, and you do
this same query from 20 machines, you'll end up with 20 *
100000 * (SUM (data storage of all 10 columns)) separated
on 20 different machines. Performance wasn't the primary
goal... flexibility, scalability were much more important.


With that said, if you don't need binding, you can use a
DataReader which works effectively like the old cursors
did (using a Datareader is considered using ADO.NET in
Connected mode). Since Dataadapters use DataReaders to
build datasets, you can see how they will always be at
best slower.

Make sure you are using Indexed fields in your query and
don't do any joins on tables (well, this takes some
explanation). If you are using disconnected ADO.NET,
don't use any joins, rather, use individual queries on
the tables and relate them via a DataRelation Object.

Anyway, there's a lot to ADO.NET and I couldn't do it
justice in one post. If you read David Sceppa's ADO.NET
COre Reference by MS Press, it will probably address
everything you need and I consider it IMHO a must have
resource.

If I can be of more help, let me know I'll do what I can.

Good Luck,

Bill

W.G. Ryan
(e-mail address removed)
www.knowdotnet.com
 
if I remeber correctly, RDO used a binary stream between the client and
server for passing data. this is a much smaller payload then the xml
serialization used by .net.

loading of datasets is actually faster in .net then in ado. you can also
write your own xml serializazation to reduce packet size.

-- bruce (sqlwork.com)
 
Back
Top