• SQL Server 执行参数化脚本时的一个性能问题


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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    day38_css
    day39_css_浮动_display
    day36_html
    线段树模板2 洛谷p3373
    hdu1257 最少拦截系统
    树的重心(DFS)
    树的直径(BFS)
    面向对象复习
    面向对象练习题
    面向对象的交互
  • 原文地址:https://www.cnblogs.com/gaoyunpeng/p/2861374.html
Copyright © 2020-2023  润新知