我有一个Web服务,因此处理程序会一直多次同时调用.
在里面我创建了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));
Run Code Online (Sandbox Code Playgroud)
然后在执行期间我只需更改CommandText prorerty,然后调用ExecuteNonQuery(); 或ExecuteScalar();
我面临性能问题.例如,小调试和分析显示该命令
command.CommandText = "SELECT LastShowTS FROM LogForAllTime WHERE UserID = @UserID";
Run Code Online (Sandbox Code Playgroud)
平均需要大约50毫秒.如果我将其更改为:
command.CommandText = "SELECT LastShowTS FROM LogForAllTime WHERE UserID = '" + userID.Replace("\'", "") + "'";
Run Code Online (Sandbox Code Playgroud)
然后它只需要1ms的平均值!
我只是无法弄清楚在哪里调查问题.