SQL隐式装换消耗过高CPU

错误参数类型numeric

/*100001790*/select uid from voip_userextendcontactinfo with (nolock) where sipid = 111000032683159

正确参数类型nvarchar

/*100001790*/select uid from voip_userextendcontactinfo with (nolock) where sipid = N'111000032683159'

数据库定义为Varchar,Char:

  1. 如果使用的是DbType 枚举,推荐使用AnsiString。
  2. 如果使用的是SqlDbType枚举,推荐使用VarChar。

数据库定义为Nvarchar,Nchar:

  1. 如果使用的是DbType 枚举,推荐使用String。
  2. 如果使用的是SqlDbType枚举,推荐使用Nvarchar。

.NET与SQL server类型的关系,可以参考如下两篇文档:

http://msdn.microsoft.com/zh-cn/library/system.data.sqldbtype(VS.80).aspx

http://technet.microsoft.com/zh-cn/library/system.data.dbtype(v=vs.85).aspx

原文地址:https://www.cnblogs.com/justdba/p/5707956.html