新聞中心
以下的文章主要描述的是SQL Server 表內(nèi)容的組合,即 union 提高查詢速度的實際操作步驟,以下就是SQL Server 表內(nèi)容的組合,即 union 提高查詢速度的實際操作步驟的描述,希望在你今后的學(xué)習(xí)中會有所幫助。

創(chuàng)新互聯(lián)建站,為您提供重慶網(wǎng)站建設(shè)公司、網(wǎng)站制作、網(wǎng)站營銷推廣、網(wǎng)站開發(fā)設(shè)計,對服務(wù)成都搬家公司等多個行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗。創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報價服務(wù),我們深知市場的競爭激烈,認真對待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進步,是我們永遠的責任!
- select ws.nodeid,wi.laststepid,wi.curstepid from Workflowinfo wi,
- Workflowstep ws where ws.workflowid=
- select ws.nodeid,wi.laststepid,wi.curstepid from Workflowinfo wi,
- Workflowstep ws where ws.workflowid=
- '402881db1b441e6f011c0cff320e4766' and (wi.laststepid =
- ws.id or (wi.curstepid = ws.id and isreceived=1 and issubmited =1))
執(zhí)行IO統(tǒng)計結(jié)果如下:
(22 行受影響)
SQL Server 表 'workflowstep'。掃描計數(shù) 1,邏輯讀取 23 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
表 'Worktable'。掃描計數(shù) 4,邏輯讀取 1490572 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
表 'workflowinfo'。掃描計數(shù) 4,邏輯讀取 12208 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
SQL Server 表 'Worktable'。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
執(zhí)行計劃如下:
這里發(fā)現(xiàn):主要是嵌套循環(huán)算法占的開銷***。個人感覺是“Or”引起的性能問題,后來根據(jù)業(yè)務(wù)邏輯改寫。如下:
語句修改如下:
- select ws.nodeid,wi.laststepid,wi.curstepid from Workflowinfo wi, Workflowstep ws
- where ws.workflowid='402881db1b441e6f011c0cff320e4766' and (wi.laststepid = ws.id)
- union all
- select ws.nodeid,wi.laststepid,wi.curstepid from Workflowinfo wi, Workflowstep
- ws where ws.workflowid='402881db1b441e6f011c0cff320e4766' and
- (wi.curstepid = ws.id and isreceived=1 and issubmited =1)
查詢IO次數(shù)如下:
(22 行受影響)
表 'workflowinfo'。掃描計數(shù) 36,邏輯讀取 142 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
SQL Server 表 'workflowstep'。掃描計數(shù) 2,邏輯讀取 46 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
執(zhí)行計劃如下:
這里發(fā)現(xiàn):成本不在是嵌套循環(huán)上的開銷了,IO次數(shù)大大減少。
總結(jié):
這里通過改寫”O(jiān)R“語句成“Union”語句,性能大大提高,用了or語句,數(shù)據(jù)庫優(yōu)化器無法優(yōu)化,這里都是用的“嵌套循環(huán)算法”,但是使用方式不一樣,同樣得到不同的結(jié)果。
對于類似的語句,可以將其改寫成”Union“ 或”Union All“ 語句。
當前題目:SQLServer表內(nèi)容的組合的操作模式
轉(zhuǎn)載注明:http://m.5511xx.com/article/dhpijss.html


咨詢
建站咨詢
