今天遇到了一个莫名其妙的性能问题,一段简单的SQL语句,以用户名为查询条件。

不同的用户执行时居然速度不同,凡是用户名中带有“9”的,执行速度就慢。

匪夷所思,难道“9”是敏感词??开玩笑,肯定是程序哪里有问题。

经过检查,发现代码中添加查询参数时,只声明了参数名称,而没有指定参数类型。如下:

new SqlParameter("@XXX", "用户名");

代码跟踪到这里,发现这样生成的参数对象的数据类型是NVarChar,而数据库中的用户名字段类型是VarChar。

就差这么一点点,结果导致用户名中带有“9”的用户的查询速度明显降低。

这个“9”为什么会慢,还没搞清楚,但是改正的方法已经明确了。

在实例化参数对象时指定数据类型是VarChar就可以了,这下查询速度就上来了。

一时马虎,居然就出现了效率问题,看来码农搬砖也是需要走走脑子的……

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-21
  • 2021-09-28
  • 2022-12-23
  • 1970-01-01
  • 2021-12-16
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-06
  • 2022-12-23
  • 2021-07-28
相关资源
相似解决方案