Quantcast
Channel: Common Language Runtime Internals and Architecture forum
Viewing all articles
Browse latest Browse all 1710

How to Improve C# Code & DataBase Performance (Update Query)

$
0
0
Hi All,

Please find below code - 

string updateQuery = "UPDATE TENDORS SET TENDORS_VALUE = ";
Cmd.CommandText = "SELECT TENDORS_VALUE,ID,TENDOR_DATE FROM TENDORS WHERE ID IN (" + "" + (IDValues) + "" + ")";
DB2DataReader dr = Cmd.ExecuteReader();
while (dr.Read())
{
            tENDORS_VALUE = dr["TENDORS_VALUE"].ToString();
            id = dr["ID"].ToString();
            tDate = Convert.ToDateTime(dr["TENDOR_DATE"]);
    contextStr = GenerateHexaValue(id, tENDORS_VALUE);
    if (!string.IsNullOrEmpty(contextStr))
            {
                finalUpdateQuery += updateQuery + " '" + contextStr + "' " + " WHERE ID = '" + id + "' AND TENDOR_DATE = '" + tDate+ "';";
            }
}
 if (!string.IsNullOrWhiteSpace(finalUpdateQuery))
{
DB2Command command = new DB2Command(finalUpdateQuery.Substring(0, finalUpdateQuery.Length - 1), connect);
command.Transaction = dbTran;
rowCount = command.ExecuteNonQuery();
}

Here finalUpdateQuery (it is stringBuilder) is - 

UPDATE TENDORS SET TENDORS_VALUE =  '080'  WHERE ID = '1245789633' AND TENDOR_DATE = '2012-01-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  '080'  WHERE ID = '1235853861' AND TENDOR_DATE = '2011-02-22'; 
UPDATE TENDORS SET TENDORS_VALUE =  '0A0'  WHERE ID = '2565854283' AND TENDOR_DATE = '2013-11-19'; 
UPDATE TENDORS SET TENDORS_VALUE =  '0A0'  WHERE ID = '0565853935' AND TENDOR_DATE = '2012-02-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  '080'  WHERE ID = '5565854148' AND TENDOR_DATE = '2013-07-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  '480'  WHERE ID = '4565850296' AND TENDOR_DATE = '2012-12-20'; 
UPDATE TENDORS SET TENDORS_VALUE =  '480'  WHERE ID = '4565850507' AND TENDOR_DATE = '2012-10-12'; 
UPDATE TENDORS SET TENDORS_VALUE =  '480'  WHERE ID = '4565850644' AND TENDOR_DATE = '2012-09-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  '480'  WHERE ID = '4565851488' AND TENDOR_DATE = '2012-08-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  '080'  WHERE ID = '4610849238' AND TENDOR_DATE = '2012-07-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  '4A0'  WHERE ID = '4610849238' AND TENDOR_DATE = '2012-06-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  'EB0'  WHERE ID = '4610849238' AND TENDOR_DATE = '2012-05-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  'EA0'  WHERE ID = '4610850154' AND TENDOR_DATE = '2012-04-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  'EA0'  WHERE ID = '4610850154' AND TENDOR_DATE = '2012-03-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  'EA0'  WHERE ID = '4610850154' AND TENDOR_DATE = '2012-12-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  'CA0'  WHERE ID = '4610851768' AND TENDOR_DATE = '2012-08-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  'CA0'  WHERE ID = '4610851768' AND TENDOR_DATE = '2012-07-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  'CA0'  WHERE ID = '4610851768' AND TENDOR_DATE = '2012-06-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  '8B0'  WHERE ID = '4565853935' AND TENDOR_DATE = '2012-05-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  '8B0'  WHERE ID = '4565854146' AND TENDOR_DATE = '2009-04-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  '8B0'  WHERE ID = '4565854146' AND TENDOR_DATE = '2009-03-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  '9B0'  WHERE ID = '4565854283' AND TENDOR_DATE = '2010-02-02'; 
UPDATE TENDORS SET TENDORS_VALUE =  '9B0'  WHERE ID = '4565854283' AND TENDOR_DATE = '2011-01-02'; 
.
.
.
.
upto 1000 Update statements


When we are executing above query (i.e. Executing 1000 Update Queries) it is taking much time. I want to boost performance. Which is best way to optimized it in terms of code and Time ?  



Viewing all articles
Browse latest Browse all 1710

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>