C 中引數化查詢速度慢的原因

2022-01-13 20:17:50 字數 824 閱讀 8778

今天同事問了乙個很有意思的問題,為啥我執行的sql在資料庫裡面執行的很快,在程式中執行的速度怎麼能這麼慢?

真實案例(只是查詢語句不是這麼簡單):

同事:你看我執行的語句在sqlserver中執行的有多快 

語句:select  a.id,b.id,a.其他列 from a left join b on a.bid=b.id where a.name='huage'

我說:你別光看語句啊,之前sql語句拼接字串才是這樣的執行語句啊。你看語句監視看看,到底執行的是什麼語句

同事:exec sp_executesql n'select a.id,b.id,a.其他列 from a left join b on a.bid=b.id where a.name=@name',n'@name nvarchar(5)',@name=n'huage' 語句是這個啊,引數化執行跟我之前的拼接sql沒區別啊?

我說:你把這個放到查詢裡面看看,執行起來咋樣?

同事:複製貼上,哎呀媽呀,真nm的慢?咋回事啊?

我說:你把那個引數的型別改成varchar看看

同事:哎呦我去,就去掉了個n,這速度能提這麼快?

我說:這邊查詢最好根據資料庫欄位的宣告型別來設定型別,根據實際的字元大小來設定大小,這樣才不會出現『卡頓』的sql

引數化查詢的時候,我們可以使用 

new sqlparameter("@name", "1212華哥")

;因為資料庫中的中文是兩個位元組,英文是乙個位元組,所以這邊引數的大小我們最好使用取引數的位元組數

善於發現一些問題,這樣才能使自己提高,不能為了會用而自得,要為得心應手找方法。

萬丈高樓平地起,也要靠積累

查詢速度慢的原因,如何優化查詢

頁面顯示資料一定要及時的呈現,否則會影響使用者體現.那麼導致頁面載入資料慢或者顯示滯後的原因又是什麼呢?原因分析 後台資料庫中資料過多,未做資料優化 資料請求 解析 展示處理不當 網路問題 提高資料庫查詢的速度方案 sql 查詢速度慢的原因有很多,常見的有以下幾種 1 沒有索引或者沒有用到索引 查詢...

mysql查詢速度慢的原因 整理版

在以前的部落格中陸續記錄了有關查詢效率方面的文章。今天在整理一下,寫上自己的一些心得記錄如下 常見查詢慢的原因常見的話會有如下幾種 1 沒有索引或沒有用到索引。ps 索引用來快速地尋找那些具有特定值的記錄,所有mysql索引都以b 樹的形式儲存。如果沒有索引,執行查詢時mysql必須從第乙個記錄開始...

mysql查詢速度慢的原因 整理版

在以前的部落格中陸續記錄了有關查詢效率方面的文章。今天在整理一下,寫上自己的一些心得記錄如下 常見查詢慢的原因常見的話會有如下幾種 1 沒有索引或沒有用到索引。ps 索引用來快速地尋找那些具有特定值的記錄,所有mysql索引都以b 樹的形式儲存。如果沒有索引,執行查詢時mysql必須從第乙個記錄開始...