问题:
在 SQL Server 中快速返回数据的查询从 C# 运行时 Management Studio (SSMS) 需要花费大量时间应用程序。
代码:
C# 代码使用 SqlDataAdapter 及其 Fill 方法来执行查询。
using (var conn = new SqlConnection(...)) using (var ada = new SqlDataAdapter(...)) { ada.Fill(Logs); }
SSMS 查询是与执行的相同
原因:
执行时间的差异是由于应用程序和 SSMS 中处理参数的方式不同造成的。在应用程序中,使用AddWithValue方法添加一个NVARCHAR类型的参数,而在SSMS中,参数声明为VARCHAR。
解决方案:
解决这个问题,要么:
ada.SelectCommand.Parameters.Add("@clientID", SqlDbType.Varchar, 200);
where client_id = cast(@clientID as varchar(200))
第一个解决方案是首选,因为它还解决了潜在的缓存污染问题问题。
附加注意事项:
以上是为什么我的 SQL 查询在 SSMS 中很快,但在 C# 应用程序中却很慢?的详细内容。更多信息请关注PHP中文网其他相关文章!