Here’s a list of things to know if you’d like achieve the best performance/scalability with SqlClient:
- Use SqlBulkCopy to send large sets of data to the server
- Set DbDataAdapter.UpdateBatchSize to send batches to the server
- Use strongly typed getters instead of GetValue/GetSqlValue
- Turn on CommandBehavior.SequentialAccess and call GetChars/GetBytes when working with BLOBs
- Use parameterized queries (Avoids conversion to and from nchar type)
- Wrap multi-step operations in a transaction
- Use connection pooling
You might also be interested in check out this article: Improving ADO.NET Performance.