Today, I encountered an inexplicable performance problem. A simple SQL statement uses the user name as the query condition.
Different users have different execution speeds. If the user name contains "9", the execution speed is slow.
Incredible, isn't "9" a sensitive word ?? Kidding.ProgramWhere is the problem.
After inspection, we found thatCodeWhen adding a query parameter, only the parameter name is declared, but the parameter type is not specified. As follows:
New sqlparameter ("@ xxx", "User Name ");
After the code traces, it is found that the data type of the generated parameter object is nvarchar, And the username field type in the database is varchar.
As a result, the query speed of the user with "9" in the user name is significantly reduced.
Why is this "9" slow? I haven't figured it out yet, but the correct method has been clarified.
You can specify varchar as the data type when instantiating the parameter object, and the query speed is up.
The efficiency problem occurred when I was so careless. It seems that the Code farming team also needs to move around ......