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

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

索引中列的順序有多重要?

索引中列的順序有多重要?

幕布斯6054654 2019-10-06 12:52:42
我聽說您應(yīng)該在索引聲明的開頭放置最有選擇性的列。例:CREATE NONCLUSTERED INDEX MyINDX on Table1(   MostSelective,   SecondMost,   Least)首先,我說的是正確的嗎?如果是這樣,我是否有可能通過重新排列索引中列的順序來看到性能上的巨大差異,還是更多的“不錯(cuò)的做法”?我問的原因是因?yàn)樵谕ㄟ^DTA進(jìn)行查詢之后,建議我創(chuàng)建一個(gè)索引,其中幾乎所有列都與現(xiàn)有索引相同,只是順序不同。我正在考慮只是將缺少的列添加到現(xiàn)有索引中,并稱之為良好。有什么想法嗎?
查看完整描述

3 回答

?
楊__羊羊

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

看一下這樣的索引:


Cols

  1   2   3

-------------

|   | 1 |   |

| A |---|   |

|   | 2 |   |

|---|---|   |

|   |   |   |

|   | 1 | 9 |

| B |   |   |

|   |---|   |

|   | 2 |   |

|   |---|   |

|   | 3 |   |

|---|---|   |

看到第一列限制比第一列限制消除更多結(jié)果的方式如何限制第一列?如果您想象必須如何遍歷索引,第1列然后第2列,等等,會(huì)更容易。。。您會(huì)發(fā)現(xiàn),第一遍中大部分結(jié)果的丟失使第二步快得多。


另一種情況,如果您查詢第3列,則優(yōu)化器甚至都不會(huì)使用索引,因?yàn)樗鼘s小結(jié)果集完全沒有幫助。 隨時(shí)在查詢中,在進(jìn)行下一步之前,縮小要處理的結(jié)果數(shù)的范圍即可提高性能。


由于索引也是以這種方式存儲(chǔ)的,因此在查詢索引時(shí),不會(huì)在索引上回溯以找到第一列。


簡而言之:不,這不是為了展示,而是有真正的性能優(yōu)勢。


查看完整回答
反對 回復(fù) 2019-10-06
?
侃侃爾雅

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

列的順序至關(guān)重要?,F(xiàn)在哪個(gè)順序正確,取決于您要查詢的順序。索引可用于執(zhí)行精確搜索或范圍掃描。精確查找是指指定索引中所有列的值,并且查詢恰好位于該行所關(guān)注的位置。對于查找,列的順序無關(guān)緊要。范圍掃描是僅指定一些列的情況,在這種情況下,順序變得很重要。只有指定了最左列,然后指定了下一個(gè)最左列,SQL Server才可以將索引用于范圍掃描。如果您對(A,B,C)的索引可以用來范圍掃描A=@a,為A=@a AND B=@bB=@b,對于C=@c也不B=@b AND C=@c。情況A=@a AND C=@c是混合的,例如A=@a部分將使用索引,但C=@c不使用索引(查詢將掃描所有B值的A=@a,不會(huì)“跳到” C=@c)。其他數(shù)據(jù)庫系統(tǒng)具有所謂的“跳過掃描”運(yùn)算符,當(dāng)未指定外部列時(shí)可以利用索引中的內(nèi)部列。

掌握了這些知識(shí)之后,您可以再次查看索引定義。(MostSelective, SecondMost, Least)僅當(dāng)MostSelective指定column 時(shí),索引on 才有效。但是,最有選擇性的是,內(nèi)部列的相關(guān)性將迅速降低。很多時(shí)候,您會(huì)發(fā)現(xiàn)(MostSelective) include (SecondMost, Least)或上有一個(gè)更好的索引(MostSelective, SecondMost) include (Least)。由于內(nèi)部列的相關(guān)性較低,因此將低選擇性列放置在索引中的此類正確位置上只會(huì)使它們產(chǎn)生尋找噪音,因此將它們移出中間頁并僅將它們保留在葉子頁上是有意義的,因?yàn)椴樵兏采w率的目的。換句話說,將它們移動(dòng)到INCLUDE。隨著Least列大小的增加,這一點(diǎn)變得更加重要。想法是該索引只能使指定以下內(nèi)容的查詢受益MostSelective無論是精確值還是范圍,該列的選擇性最高,已經(jīng)在很大程度上限制了候選行。

另一方面,上的索引(Least, SecondMost, MostSelective)看似錯(cuò)誤,但實(shí)際上它是一個(gè)功能強(qiáng)大的索引。因?yàn)樗哂?code>Least列作為其最外面的查詢,所以它可用于必須在低選擇性列上聚合結(jié)果的查詢。這樣的查詢在OLAP和分析數(shù)據(jù)倉庫中很普遍,而這正是此類索引非常適合的地方。這樣的索引實(shí)際上是出色的聚集索引,正是因?yàn)樗鼈儗⑽锢聿季纸M織在大塊相關(guān)行上(相同的Least值,通常表示某種類別或類型),并且有助于分析查詢。

因此,不幸的是,沒有“正確”的命令。您不應(yīng)該遵循任何曲奇工具的配方,而應(yīng)針對這些表分析將要使用的查詢模式,并確定哪個(gè)索引列順序正確。


查看完整回答
反對 回復(fù) 2019-10-06
  • 3 回答
  • 0 關(guān)注
  • 995 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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