DB2 SQL語句的優化

2021-08-04 08:41:38 字數 892 閱讀 9447

最近在做一銀行的優化專案,由於正在學習中,所以做的一些筆記:

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 檢視系統使用者 ...