首页 > 数据库 > mysql教程 > 为什么我的 SQL 查询在 SSMS 中很快,但在 C# 应用程序中却很慢?

为什么我的 SQL 查询在 SSMS 中很快,但在 C# 应用程序中却很慢?

Susan Sarandon
发布: 2025-01-04 07:04:34
原创
148 人浏览过

Why is my SQL Query Fast in SSMS but Slow in my C# Application?

代码在应用程序中运行缓慢,但在 SSMS 中运行速度很快

问题:

在 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。

解决方案:

解决这个问题,要么:

  1. 在应用程序中添加参数时使用接受类型的构造函数code:
ada.SelectCommand.Parameters.Add("@clientID", SqlDbType.Varchar, 200);
登录后复制
  1. 在 SQL 文本中强制转换参数:
where client_id = cast(@clientID as varchar(200))
登录后复制

第一个解决方案是首选,因为它还解决了潜在的缓存污染问题问题。

附加注意事项:

  • 确保应用程序和 SSMS 使用相同的计算机和登录名。
  • 查询中引用的表具有适当的索引,并且在 SSMS 中性能良好.
  • 考虑参数缓存对查询性能的影响。

以上是为什么我的 SQL 查询在 SSMS 中很快,但在 C# 应用程序中却很慢?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板