服务器是阿里云8核16g,程序需要在晚上十二点进行数据计算,计算过程中,cpu使用100%,计算完成之后一个小时内,用户反映系统特别卡,请大神指点该怎么优化。
现在程序的调用方法是:
[C#] 纯文本查看 复制代码 /// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public static int ExecuteSqlTran(List<String> SQLStringList)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
SqlTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
int count = 0;
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList[n];
Log.xierizhi2(strsql);
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
count += cmd.ExecuteNonQuery();
}
}
tx.Commit();
return count;
}
catch
{
tx.Rollback();
return 0;
}
}
}
SQLStringList里面有12万条sql语句,拼接SQLStringList花了差不多90秒,ExecuteSqlTran执行了70秒,搞不懂是这个方法不够优化,还是访问量太大造成的系统卡,请各位指点。@站长苏飞 |