問題: 應用程序經過參數化訪問數據庫時出現執行效率慢,直接經過語句查時秒出結果,經過參數化查詢時用時是前者的幾十上百倍。數據庫
排查:1.使用了錯誤的執行計劃;緩存
解決:清除緩存的執行計劃(未能解決上面問題);性能
而後百度查了很多資料發現入參的數據類型也會對性能有很大的影響,查代碼後發現應用程序調用時對參數類型設置爲nvarchar,可是數據庫字段類型爲varchar,修改代碼後性能立刻正常了。 測試
緣由:varchar與narchar對應的編碼格式(unicode,utf-8,utf-16等等)不一樣,若是傳入參數先後發生了編碼格式轉化,一定要消耗額外的時間,類型不一樣會致使索引失效進行全表掃描;編碼
總結:類型轉換,索引失效;code
PS:若是表數據不大的話影響還不明顯,數據量大的時就很是明顯,這也是以前爲何一直沒有人提這個問題(測試環境下這個問題不明顯)。索引