Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
I am new to Database interection with C#, I am trying to writing 10000 records in database in a loop with the help of SqlCommand and SqlConnection objects with the help of SqlTransaction and committing after 5000. It is taking 10 seconds to processed.
 
SqlConnection myConnection = new SqlConnection("..Connection String..");
myConnection.Open();
SqlCommand myCommand = new SqlCommand();
myCommand.CommandText = "exec StoredProcedureInsertOneRowInTable Param1, Param2........";
myCommand.Connection = myConnection;
SqlTransaction myTrans = myConnection.Begintransaction();
 

for(int i=0;i<10000;i++)
{
 mycommand.ExecuteNonQuery();
 if(i%5000==0)
 {
  myTrans.commit
  myTrans = myConnection.BeginTransaction();
  mycommand.Transaction = myTrans;
 }
}
 
Above code is giving me only 1000 rows write/sec in database.
 
But when i tried to implement same logic in T-SQL and execute it on Database with SqlManagement Studio the it gave me 10000 write/sec.
When I compare the behaviour of above two approch then it showes me that while executing with ADO.Net there is large number of Logical reads.
 
my questions are:
1. Why there is logical reads in ADO.Net execution?
2. Is tansaction ahve some hand shaking?
3. Why they are not available in case of management studio?
4. If I want very fast insert transactions on DB then what will be the approach?
Posted 27-Jan-11 2:18am

1 solution

Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

It's always going to be the case that making a ton of SQL calls is slower than making one. That's why you should never do what you're doing. Instead, I'd put the data I was pushing in to an XML document and use OpenXML to pass it to SQL Server.
  Permalink  
Comments
vikram_eck at 28-Jan-11 1:10am
   
I understand that the approach I am using is incorrect but it is my requirement as I have to store real time transactions, real time in to Database as other applications may willing to use it.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Your Filters
Interested
Ignored
     
0 Sergey Alexandrovich Kryukov 895
1 OriginalGriff 523
2 thatraja 245
3 Abhinav S 243
4 Emre Ataseven 200
0 Sergey Alexandrovich Kryukov 8,142
1 OriginalGriff 4,665
2 Peter Leow 3,774
3 Maciej Los 3,515
4 Er. Puneet Goel 3,107


Advertise | Privacy | Mobile
Web04 | 2.8.140415.2 | Last Updated 27 Jan 2011
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Use
Layout: fixed | fluid