close

在工作的時候
最近常因為SQL的問題因此不斷地出現問題在這裡記錄一下

幾個會造成很大的loading的狀況
1.
欄位是string 比對值是數字 
原因:
欄位都要做convert轉換 >>執行計畫裡面 CPU很高
解法
把數字轉成string

2.
sql中使用很多in 而不是inner join 或是in裡面的語句過長
原因:
執行計畫中io母數很高 同時in 也幾乎要做掃描
解法:
先成立一個temp table 塞進去 再用table inner join的方法減低母數


3.
sql中因為不斷的JOIN跟本身的欄位過多造成散成太多欄位並且產生記憶體爆炸
原因:
在不斷的JOIN過程中,表被散到超過記憶體error
解法:
適當的使用outer join 選取需要的欄位

4.
使用petapoco的時候 會自動選取select欄位
原因:
使用套件的時候會自動幫我下select * 語法
解法:
使用套件的時候同時先看看sql profiler

結論 
執行計畫跟profiler很有用


 

arrow
arrow
    文章標籤
    SQL
    全站熱搜

    丁滿 發表在 痞客邦 留言(0) 人氣()