1
--a段2--
--------------------
3select
so_d.*,
45from
sal_orderlist so_d
6left
join
bas_bom bom_m 7on
(so_d.fmaterialkey
=bom_m.fmaterialkey
8and
so_d.fcolorkey
=bom_m.fcolorkey)
9inner
join
com_billinfo c_bf
10on
(bom_m.fformkey
=c_bf.fformkey)
11and=1
) 12
13--
b段14
----------------------
15select
so_d.*,
1617
from
sal_orderlist so_d
18left
join
bas_bom bom_m
19inner
join
com_billinfo c_bf
20on
(bom_m.fformkey
=c_bf.fformkey)
21and=1
)22on(so_d.fmaterialkey
=bom_m.fmaterialkey
23and
so_d.fcolorkey
=bom_m.fcolorkey)
兩段指令碼達到的效果是一樣的
在查詢分析器中顯示計畫的效果a段占用了70%的開銷, b段占用30%開銷,可見b段效率比a段高 1
--a2select
wst.*3
from
com_materialwastebook wst
4left
join
b_material b_m
onwst.fmaterialkey
=b_m.fkey
5left
join
color b_clr
onwst.fcolorkey
=b_clr.fkey
6left
join
bas_items b_sz
onwst.fsizekey
=b_sz.fkey
7where
b_m.fkey
isnot
null89
---b
10select
wst.*11
from
com_materialwastebook wst
12inner
join
b_material b_m
onwst.fmaterialkey
=b_m.fkey
13inner
join
color b_clr
onwst.fcolorkey
=b_clr.fkey
14inner
join
bas_items b_sz
onwst.fsizekey
=b_sz.fkey15
上面兩段
查詢開銷
a 佔98%
b 佔2%
但是實際執行時,在100多w的記錄中a執行只需25秒左右,b需要50秒(結果執行多次)
關於thinkphp關聯模型的效率問題
以前聽說過thinkphp關聯模型效率比較低,但是一直沒去看源 現在也沒看 今天寫rbac的時候才感覺到 user表,字段 id,nickname role表,字段 id,remark role user表,user id,role id 將所有使用者列出來,並顯示其所在使用者組 一 使用think...
SQL表關聯中的邏輯與效率
入職後用了sql也有一年了,對sql和各個資料庫的了解也漸漸多了起來。感覺sql的關聯蠻有意思的,在這裡寫一下自己對這玩意的認識的總結吧。本篇主要是通過目前接觸到的兩個資料庫 vertica和impala oracle和mysql也有,但是個人用的不多 的執行計畫來寫的,優化器做到差不多地步的資料庫...
子查詢和關聯查詢 效率
msdn對子查詢的定義是這樣的 可以將乙個查詢的結果用作另乙個查詢的輸入。可以將子查詢的結果用作使用 in 函式 exists 運算子或 from 子句的語句。一條好的值得稱讚的規則是盡量用連線代替所有的子查詢。優化器有時可以自動將子查詢 扁平化 並且用常規或外連線代替。但那樣也不總是有效。明確的連...