測試例子:測試
子查詢:workflow
select a.*,
(select workflowname from workflowbase where id=workflowid) workflowname
from [[zping.com]]] a
where a.operator='402882ed1112669201112a8385892f33'table
執行結果:select
(360 行受影響)
表 'Worktable'。掃描計數 360,邏輯讀取 142334 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。
表 'workflowbase'。掃描計數 1,邏輯讀取 1589 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。
表 '[zping.com]'。掃描計數 1,邏輯讀取 366 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。總結
關聯查詢:查詢
select a.*,b.workflowname
from [[zping.com]]] a inner join workflowbase b on a.workflowid=b.id
where operator='402882ed1112669201112a8385892f33'tab
執行結果: ping
(360 行受影響)
表 'Worktable'。掃描計數 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。
表 'workflowbase'。掃描計數 1,邏輯讀取 1589 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。
表 '[zping.com]'。掃描計數 1,邏輯讀取 366 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。co
這裏:子查詢IO次數:142334 +1589+366=144289join
關聯查詢IO次數:1589 +366 =1922
關聯查詢是子查詢的75倍
總結:
使用子查詢和關聯查詢,通常狀況下若是能用關聯查詢就不用子查詢,