第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

SQL Server中的內(nèi)連接與左連接性能

SQL Server中的內(nèi)連接與左連接性能

HUX布斯 2019-07-06 13:34:22
SQL Server中的內(nèi)連接與左連接性能我已經(jīng)為9個(gè)表創(chuàng)建了使用內(nèi)部聯(lián)接的SQL命令,無(wú)論如何,這個(gè)命令需要很長(zhǎng)時(shí)間(超過(guò)5分鐘)。所以我的民間建議我把內(nèi)部加入改為左加入,因?yàn)樽舐?lián)的表現(xiàn)更好,雖然我知道的是第一次。修改后,查詢速度明顯提高。我想知道為什么左連接比內(nèi)部連接快?我的SQL命令如下所示:SELECT * FROM A INNER JOIN B ON ... INNER JOIN C ON ... INNER JOIN D諸若此類最新情況:這是我的模式簡(jiǎn)介。FROM sidisaleshdrmly a -- NOT HAVE PK AND FK     INNER JOIN sidisalesdetmly b -- THIS TABLE ALSO HAVE NO PK AND FK         ON a.CompanyCd = b.CompanyCd             AND a.SPRNo = b.SPRNo             AND a.SuffixNo = b.SuffixNo             AND a.dnno = b.dnno    INNER JOIN exFSlipDet h -- PK = CompanyCd, FSlipNo, FSlipSuffix, FSlipLine         ON a.CompanyCd = h.CompanyCd           AND a.sprno = h.AcctSPRNo             INNER JOIN exFSlipHdr c -- PK = CompanyCd, FSlipNo, FSlipSuffix         ON c.CompanyCd = h.CompanyCd           AND c.FSlipNo = h.FSlipNo             AND c.FSlipSuffix = h.FSlipSuffix      INNER JOIN coMappingExpParty d -- NO PK AND FK         ON c.CompanyCd = d.CompanyCd           AND c.CountryCd = d.CountryCd      INNER JOIN coProduct e -- PK = CompanyCd, ProductSalesCd         ON b.CompanyCd = e.CompanyCd           AND b.ProductSalesCd = e.ProductSalesCd      LEFT JOIN coUOM i -- PK = UOMId         ON h.UOMId = i.UOMId      INNER JOIN coProductOldInformation j -- PK = CompanyCd, BFStatus, SpecCd         ON a.CompanyCd = j.CompanyCd            AND b.BFStatus = j.BFStatus                     AND b.ProductSalesCd = j.ProductSalesCd             INNER JOIN coProductGroup1 g1 -- PK = CompanyCd, ProductCategoryCd, UsedDepartment, ProductGroup1Cd         ON e.ProductGroup1Cd  = g1.ProductGroup1Cd             INNER JOIN coProductGroup2 g2 -- PK = CompanyCd, ProductCategoryCd, UsedDepartment, ProductGroup2Cd         ON e.ProductGroup1Cd  = g2.ProductGroup1Cd
查看完整描述

3 回答

?
ibeautiful

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊

如果一切都正常工作,那么它就不應(yīng)該正常工作,但我們都知道,所有的事情都不能正常工作,特別是在查詢優(yōu)化器、查詢計(jì)劃緩存和統(tǒng)計(jì)數(shù)據(jù)方面。

首先,我建議重建索引和統(tǒng)計(jì)數(shù)據(jù),然后清除查詢計(jì)劃緩存,以確保這不會(huì)搞砸。然而,即使這樣做了,我也遇到了一些問(wèn)題。

我曾經(jīng)經(jīng)歷過(guò)一些情況,即左連接比內(nèi)部連接要快。

其根本原因是:如果您有兩個(gè)表,并且使用索引(在兩個(gè)表上)連接到一個(gè)列上。內(nèi)部聯(lián)接將產(chǎn)生相同的結(jié)果,不管您是在表1上的索引中循環(huán)條目,還是在表2上匹配索引,就好像您要在表2上對(duì)索引中的條目執(zhí)行反向循環(huán),并在表1中與索引匹配。問(wèn)題是,當(dāng)您有誤導(dǎo)性統(tǒng)計(jì)信息時(shí),查詢優(yōu)化器將使用索引的統(tǒng)計(jì)信息來(lái)查找匹配項(xiàng)最少的表(基于其他標(biāo)準(zhǔn))。如果有兩個(gè)表,每個(gè)表有100萬(wàn)行,表1中有10行匹配,在表2中有100000行匹配。最好的方法是對(duì)表1進(jìn)行索引掃描,并在表2中匹配10次。相反的是一個(gè)索引掃描,循環(huán)超過(guò)100000行,并試圖匹配100000次,只有10次成功。因此,如果統(tǒng)計(jì)數(shù)據(jù)不正確,優(yōu)化器可能會(huì)選擇錯(cuò)誤的表和索引來(lái)循環(huán)。

如果優(yōu)化器選擇按編寫(xiě)的順序優(yōu)化左聯(lián)接,那么它的性能將優(yōu)于內(nèi)部連接。

但是,優(yōu)化器也可以將左連接優(yōu)化為左半連接。要使它選擇您想要的,您可以使用強(qiáng)制命令提示。


查看完整回答
反對(duì) 回復(fù) 2019-07-06
  • 3 回答
  • 0 關(guān)注
  • 1095 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)