我有一个网络服务,所以处理程序一直被同时调用多次。
在里面我创建了 SqlConnection 和 SqlCommand。我必须执行大约 7 个不同的命令。不同的命令需要不同的参数,所以我只添加一次:
command.Parameters.Add(new SqlParameter("@UserID", userID));
command.Parameters.Add(new SqlParameter("@AppID", appID));
command.Parameters.Add(new SqlParameter("@SID", SIDInt));
command.Parameters.Add(new SqlParameter("@Day", timestamp.Date));
command.Parameters.Add(new SqlParameter("@TS", timestamp));
然后在执行期间我只是更改 CommandText prorerty 然后调用 ExecuteNonQuery(); 或 ExecuteScalar();
我面临性能问题。例如小调试和分析显示,该命令
command.CommandText = "SELECT LastShowTS FROM LogForAllTime WHERE UserID = @UserID";
平均需要大约 50 毫秒。如果我将其更改为:
command.CommandText = "SELECT LastShowTS FROM LogForAllTime WHERE UserID = '" + userID.Replace("\'", "") + "'";
那么它平均只需要1ms!
我只是不知道在哪里调查问题。