zoukankan      html  css  js  c++  java
  • 查询分析器执行SQL很快但是ado.net很慢:请为你的SQLparameter设置DbType

      我们都知道,参数化查询可以处理SQL注入,以及提高查询的效率,因为参数化查询会使MSSQL缓存查询的计划.

      但是会出现一个问题:有的时候参数化查询比直接拼接sql字符串效率低好多,甚至是查询超时。

      原因:原来是字符类型的不匹配造成的。如果代码没有为SqlParameter设置DbType,非字符串类型,比如tinyint,int等,系统可以自动推断出SqlDbType,但是string对应数据库的nvarchar varchar等若干类型,所以无法自动推断,默认为Nvarchar。如果数据库字段不是Nvarchar,这时候就会出现该错误。

      解决方案:统一数据库文本的字段类型。

      

      如果大神有其他解决方案,希望多多赐教。

      c#类型与数据库对照参考:http://www.cnblogs.com/hantianwei/p/3152517.html

  • 相关阅读:
    75
    74
    接口理论知识
    软件测试计划的编写
    软件测试的生命周期&软件测试工作流程
    软件测试分类体系系统学习
    Mysql之高级查询
    数据库的DML操作
    Mysql之数据完整性约束
    Mysql之DDL操作
  • 原文地址:https://www.cnblogs.com/chenxizhaolu/p/7641551.html
Copyright © 2011-2022 走看看