最近在做一銀行的優化專案,由於正在學習中,所以做的一些筆記:
1.sql語句除了引號內的特殊字元,其他的語句都要大寫。
2.多表聯查,資料量按從少到多排列,當然第乙個主表通常資料量比較大,因為第乙個表通常為主表,但是從第二個表就要資料量從少到多排列了;如果遇到兩張表的資料一大一小,小表只能跟大表關聯,大表能和主表關聯,那麼就讓大表在前;如果兩張表資料量差不多,就按英文本母a到z排列。
3.where條件裡有in的:
where v_p in('a','b','c')要改為where v_p=a or v_p=b or v_p =c
where d.v_p in(select e.v_p1 from emp e where e.v_p2 like 'd%')要改為where exists (select 1 from emp e where e.v_p1=d.v_p and e.v_p2 like 'd%')
4.where 後面的條件有數字的放在前面
where a=b and c=1要改為where c=1 and a=b
5.語句中有表示區間的函式使用時要盡量用between代替
6.用union all 代替union
7.語法的優化:
coalesce(pay.accbrno,pay.brno),根據依次檢查輸入的引數,返回第乙個不是null的引數,只有當傳入coalesce函式的所有引數都為null時才返回null
coalesce(sum(case when(pay.mgr=1) then cast(pay.tr as decimal(17,2)) end),0.00) 意思是將一列取和,cast函式是乙個轉換函式
count(1)比count(*)的效率要快,所以語法是count(case when (p.wr=1) then 1 end)
db2sql語句優化
最經專案中要用到乙個樹形載入結構,由於底層資料有點多,再加上sql語句沒有怎麼優化,所以頁面資料載入的時候特別慢。只查詢底層資料的話就需要七八秒中,後來經過別人的指點從新優化sql後,底層資料的載入查詢控制在了200毫秒以為。現在就貼上我的sql語句,供大家看一下 沒有優化的sql語句 select...
DB2 SQL語句筆記
1 case when語句 sql中的case when使用,case具有兩種格式 簡單case函式和case搜尋函式。簡單case函式 case when 1 then 男 when 2 then 女 else 其他 end case搜尋函式 case when 1 then 男 when 2 t...
更多簡單而實用的 DB2 SQL 語句
start 檢視當前時間 values current time 檢視當前日期 values current date 檢視當前時間戳 values current timestamp 檢視當前時區 values current timezone 檢視使用者 values user 檢視系統使用者 ...