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 ?
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 ?