千鋒教育-做有(you)(you)情(qing)懷、有(you)(you)良(liang)心、有(you)(you)品質的職業教育機構
存(cun)儲過(guo)(guo)程(cheng)(cheng)是一(yi)組為了(le)完成特(te)定(ding)功(gong)能(neng)的(de)SQL語句集(ji),存(cun)儲在數據(ju)庫中(zhong),經過(guo)(guo)次(ci)(ci)編譯(yi)后(hou)再次(ci)(ci)調用不需(xu)要再次(ci)(ci)編譯(yi),用戶通過(guo)(guo)指(zhi)定(ding)存(cun)儲過(guo)(guo)程(cheng)(cheng)的(de)名字(zi)并給出參(can)數(如(ru)果該存(cun)儲過(guo)(guo)程(cheng)(cheng)帶有(you)參(can)數)來執行它。存(cun)儲過(guo)(guo)程(cheng)(cheng)是數據(ju)庫中(zhong)的(de)一(yi)個重要對象。
存(cun)儲過(guo)程(cheng)優(you)化思路:
1. 盡(jin)量(liang)利(li)用(yong)一些(xie) sql 語句來(lai)替代(dai)一些(xie)小循環,例如聚合函(han)(han)數,求(qiu)平均函(han)(han)數等。
2. 中間(jian)結果存放(fang)于(yu)臨時(shi)表(biao),加索引(yin)。
3. 少(shao)使用游(you)標。sql是(shi)個集(ji)合語言,對(dui)于(yu)集(ji)合運(yun)算(suan)具有較高(gao)性(xing)能。而cursors是(shi)過程運(yun)算(suan)。比(bi)如對(dui)一(yi)個100萬行的(de)數(shu)據(ju)進行查詢(xun)。游(you)標需(xu)要讀表(biao)100萬次,而不使用游(you)標則只需(xu)要少(shao)量幾次讀取。
4. 事(shi)務越短(duan)越好。sqlserver 支持并(bing)發操作。如(ru)果事(shi)務過(guo)多過(guo)長,或者(zhe)隔離級(ji)別過(guo)高,都(dou)會造成并(bing)發操作的阻(zu)塞,死鎖(suo)。導致查詢極慢,cpu 占用率極地。
5. 使用 try-catch 處(chu)理錯誤異常。
6. 查找(zhao)語句盡量不要放(fang)在循(xun)環內。
上一篇
常見的索引原則有哪些?下一篇
JVM調優參數有哪些?相關推薦