欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          oracle索引反轉(zhuǎn)是什么

          在oracle中,索引翻轉(zhuǎn)指的是在創(chuàng)建索引時(shí),針對索引列的索引鍵值進(jìn)行字節(jié)反轉(zhuǎn),進(jìn)而實(shí)現(xiàn)分散存放不同子節(jié)點(diǎn)塊的目的,是“B-tree”索引的一個(gè)分支;使用反向索引,能將索引列的鍵值進(jìn)行反轉(zhuǎn),實(shí)現(xiàn)順序的鍵值分散到不同的葉塊中,從而減少索引塊的爭用。

          oracle索引反轉(zhuǎn)是什么

          本教程操作環(huán)境:windows10系統(tǒng)、Oracle 12c版、Dell G3電腦。

          oracle索引反轉(zhuǎn)是什么

          反向索引作為B-tree索引的?個(gè)分?,主要是在創(chuàng)建索引時(shí),針對索引列的索引鍵值進(jìn)?字節(jié)反轉(zhuǎn),進(jìn)?實(shí)現(xiàn)分散存放到不同葉

          ?節(jié)點(diǎn)塊的?的。

          反向索引針對的問題

          使?傳統(tǒng)的B-tree索引,當(dāng)索引的列是按順序產(chǎn)?時(shí),相應(yīng)的索引鍵值會基本分布在同?個(gè)葉塊中。當(dāng)?戶對該列進(jìn)?操作時(shí),

          難免會發(fā)?索引塊的爭?。

          使?反向索引,將索引列的鍵值進(jìn)?反轉(zhuǎn),實(shí)現(xiàn)順序的鍵值分散到不同的葉塊中,從?減少索引塊的爭?。

          例如:鍵值1001、1002、1003,反轉(zhuǎn)后1001、2001、3001,進(jìn)?分散到不?的葉?節(jié)點(diǎn)塊中。

          當(dāng)載入一些有序數(shù)據(jù)時(shí),索引肯定會碰到與I/O相關(guān)的一些瓶頸。在數(shù)據(jù)載入期間,某部分索引和磁盤肯定會比其他部分使用頻繁得多。為了解決這個(gè)問題,可以把索引表空間存放在能夠把文件物理分割在多個(gè)磁盤上的磁盤體系結(jié)構(gòu)上。

          為了解決這個(gè)問題,Oracle還提供了一種反轉(zhuǎn)鍵索引的方法。如果數(shù)據(jù)以反轉(zhuǎn)鍵索引存儲,這些數(shù)據(jù)的值就會與原先存儲的數(shù)值相反。這樣,數(shù)據(jù)1234、1235和1236就被存儲成4321、5321和6321。結(jié)果就是索引會為每次新插入的行更新不同的索引塊。

          不能對位圖索引和索引組織表進(jìn)行反轉(zhuǎn)鍵處理。

          技巧:

          如果您的磁盤容量有限,同時(shí)還要執(zhí)行大量的有序載入,就可以使用反轉(zhuǎn)鍵索引。

          不可以將反轉(zhuǎn)鍵索引與位圖索引或索引組織表結(jié)合使用。

          ORACLE DBA實(shí)踐:創(chuàng)建反轉(zhuǎn)關(guān)鍵字索引

          對于大型聯(lián)機(jī)事務(wù)處理系統(tǒng)來說,其中的表一般都很大,在這些表的主鍵是由序列號產(chǎn)生的,而且上面是有索引的。因此相鄰的索引記錄就可能存在同一個(gè)數(shù)據(jù)塊中,這樣會形成數(shù)據(jù)塊的競爭。而隨著時(shí)間流逝,會不斷在這些表中刪除舊的無用的數(shù)據(jù),插入新的有用的數(shù)據(jù),很顯然刪除的數(shù)據(jù)是序列號很小的舊數(shù)據(jù),而插入的數(shù)據(jù)序列號是剛剛產(chǎn)生的(一定是大號),這就造成了另一個(gè)嚴(yán)重的問題:即該索引的樹是往序列號大的一面偏,因此會使得樹的深度加深從而使系統(tǒng)效率下降。

          為了解決上述問題,oracle引入了反轉(zhuǎn)關(guān)鍵字索引。反轉(zhuǎn)關(guān)鍵字索引通過將關(guān)鍵字(序列號)的每個(gè)字節(jié)順序顛倒過來再建索引的方法實(shí)現(xiàn)的。舉例如下:

          oracle索引反轉(zhuǎn)是什么

          由上可見,原來相鄰的order#經(jīng)反轉(zhuǎn)之后就不再相鄰了,這樣就可以把相鄰的order#分散到不同的數(shù)據(jù)塊中,上述問題也就迎刃而解。

          但事物總是一分為二的,反轉(zhuǎn)索引關(guān)鍵字也存在問題。例如在反轉(zhuǎn)關(guān)鍵字索引的表上進(jìn)行范圍查詢就會遇到麻煩。在正常索引的況下,滿足條件的索引記錄應(yīng)該放在同一個(gè)或相鄰的數(shù)據(jù)塊中,速度會很快;而使用反轉(zhuǎn)關(guān)鍵字索引之后,原來相鄰的滿足條件的索引記錄已經(jīng)被分散到多個(gè)數(shù)據(jù)塊中,此事要完成查詢操作只能進(jìn)行全表掃描。因此在決定是否使用反轉(zhuǎn)關(guān)鍵字索引時(shí),要分清是插入操作重要,還是范圍查詢重要。

          推薦教程:《Oracle視頻教程》

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號