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

創(chuàng)新互聯(lián)建站,為您提供重慶網(wǎng)站建設(shè)公司、網(wǎng)站制作、網(wǎng)站營(yíng)銷(xiāo)推廣、網(wǎng)站開(kāi)發(fā)設(shè)計(jì),對(duì)服務(wù)成都搬家公司等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司成立于2013年,提供專(zhuān)業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶(hù),為客戶(hù)提供賞心悅目的作品。 與客戶(hù)共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!
- 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)計(jì)結(jié)果如下:
(22 行受影響)
SQL Server 表 'workflowstep'。掃描計(jì)數(shù) 1,邏輯讀取 23 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
表 'Worktable'。掃描計(jì)數(shù) 4,邏輯讀取 1490572 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
表 'workflowinfo'。掃描計(jì)數(shù) 4,邏輯讀取 12208 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
SQL Server 表 'Worktable'。掃描計(jì)數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
執(zhí)行計(jì)劃如下:
這里發(fā)現(xiàn):主要是嵌套循環(huán)算法占的開(kāi)銷(xiāo)***。個(gè)人感覺(jué)是“Or”引起的性能問(wèn)題,后來(lái)根據(jù)業(yè)務(wù)邏輯改寫(xiě)。如下:
語(yǔ)句修改如下:
- 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)
查詢(xún)IO次數(shù)如下:
(22 行受影響)
表 'workflowinfo'。掃描計(jì)數(shù) 36,邏輯讀取 142 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
SQL Server 表 'workflowstep'。掃描計(jì)數(shù) 2,邏輯讀取 46 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
執(zhí)行計(jì)劃如下:
這里發(fā)現(xiàn):成本不在是嵌套循環(huán)上的開(kāi)銷(xiāo)了,IO次數(shù)大大減少。
總結(jié):
這里通過(guò)改寫(xiě)”O(jiān)R“語(yǔ)句成“Union”語(yǔ)句,性能大大提高,用了or語(yǔ)句,數(shù)據(jù)庫(kù)優(yōu)化器無(wú)法優(yōu)化,這里都是用的“嵌套循環(huán)算法”,但是使用方式不一樣,同樣得到不同的結(jié)果。
對(duì)于類(lèi)似的語(yǔ)句,可以將其改寫(xiě)成”Union“ 或”Union All“ 語(yǔ)句。
當(dāng)前標(biāo)題:SQLServer表內(nèi)容的組合的操作模式
地址分享:http://fisionsoft.com.cn/article/dhpijss.html


咨詢(xún)
建站咨詢(xún)
