SQL参数化出现执行慢问题

问题: 应用程序经过参数化访问数据库时出现执行效率慢,直接经过语句查时秒出结果,经过参数化查询时用时是前者的几十上百倍。数据库

排查:1.使用了错误的执行计划;缓存

解决:清除缓存的执行计划(未能解决上面问题);性能

而后百度查了很多资料发现入参的数据类型也会对性能有很大的影响,查代码后发现应用程序调用时对参数类型设置为nvarchar,可是数据库字段类型为varchar,修改代码后性能立刻正常了。   测试

缘由:varchar与narchar对应的编码格式(unicode,utf-8,utf-16等等)不一样,若是传入参数先后发生了编码格式转化,一定要消耗额外的时间,类型不一样会致使索引失效进行全表扫描;编码

总结:类型转换,索引失效;code

PS:若是表数据不大的话影响还不明显,数据量大的时就很是明显,这也是以前为何一直没有人提这个问题(测试环境下这个问题不明显)。索引

相关文章
相关标签/搜索