2015年3月31日

.NET SqlParameter(string paraName, object value) 字串 NVarchar

最近程式再被調教中
收到一封 mail說我們的 SQL script都是用 nvarchar,效能較差
要我們改成 varchar
查了一下是因為底層的 function寫得太便利,大家都是丟 object[] 進去直接賦值 大概是像這樣子
SqlParameter sqlPara = new SqlParameter("@" + temp[0], paraValues[i]);


如果 value是 int、dobule、datetime等都沒問題,產生出來的 SqlParameter內的屬性 SqlDbType會自動轉成對應的類別
但如果是字串,不管是 string、String還是 char,一律會被轉成 nvarchar
問題就來了


因為 table schema是放 varchar,query script的 where條件被轉成 nvarchar,就會導致效能變差~

沒有留言:

張貼留言