久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      oracle有幾種索引

      oracle中有六種索引:1、“B*”數(shù)索引,能根據(jù)鍵提供一行或一個(gè)行集的快速訪(fǎng)問(wèn);2、位圖索引,適用于高度重復(fù)而且通常只讀的數(shù)據(jù);3、基于函數(shù)的索引,將一個(gè)函數(shù)計(jì)算得到的結(jié)果存儲(chǔ)在行的列中;4、應(yīng)用域索引,是自己構(gòu)建和存儲(chǔ)的索引;5、HASH索引,使用該索引必須要使用HASH群集;6、分區(qū)索引,把一個(gè)索引分成多個(gè)片斷。

      oracle有幾種索引

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

      oracle有幾種索引

      Oracle 提供了多種不同類(lèi)型的索引以供使用。簡(jiǎn)單地說(shuō), Oracle 中包括如下索引:

      1、 B* 樹(shù)索引

      這些是我所說(shuō)的 “ 傳統(tǒng) “ 索引。到目前為止,這是 Oracle 和大多數(shù)其他數(shù)據(jù)庫(kù)中最常用的索引。

      B* 樹(shù)的構(gòu)造類(lèi)似于二叉樹(shù),能根據(jù)鍵提供一行或一個(gè)行集的快速訪(fǎng)問(wèn),通常只需很少的讀操作就能找到正確的行。不過(guò),需要注意重要的一點(diǎn), ” B* 樹(shù) “ 中的 ” B “ 不代表二叉( binary ),而代表平衡( b alanced )。B* 樹(shù)索引并不是一顆二叉樹(shù),這一點(diǎn)在介紹如何在磁盤(pán)上物理地存儲(chǔ) B* 樹(shù)時(shí)就會(huì)了解到。 B* 樹(shù)索引有以下子類(lèi)型:

      索引組織表( index organized table ):索引組織表以 B* 樹(shù)結(jié)構(gòu)存儲(chǔ)。堆表的數(shù)據(jù)行是以一種無(wú)組織的方式存儲(chǔ)的(只要有可用的空間,就可以放數(shù)據(jù)),而 IOT 與之不同, IOT 中的數(shù)據(jù)要按主鍵的順序存儲(chǔ)和排序。對(duì)應(yīng)用來(lái)說(shuō), IOT 表現(xiàn)得與 “ 常規(guī) “ 表并無(wú)二致;需要使用 SQL 來(lái)正確地訪(fǎng)問(wèn) IOT 。 IOT 對(duì)信息獲取、空間系統(tǒng)和 OLAP 應(yīng)用最為有用。 IOT 在上一章已經(jīng)詳細(xì)地討論過(guò)。

      B*樹(shù)聚簇索引( B*tree cluster index )這些是傳統(tǒng) B* 樹(shù)索引的一個(gè)變體(只是稍有變化)。 B* 樹(shù)聚簇索引用于對(duì)聚簇鍵建立索引(見(jiàn)第 11. 章中 “ 索引聚簇表 “ 一節(jié)),所以這一章不再討論。在傳統(tǒng) B* 樹(shù)中 ,鍵都指向一行;而 B* 樹(shù)聚簇不同,一個(gè)聚簇鍵會(huì)指向一個(gè)塊,其中包含與這個(gè)聚簇鍵相關(guān)的多行。

      降序索引( descending index ):降序索引允許數(shù)據(jù)在索引結(jié)構(gòu)中按 “ 從大到小 “ 的順序(降序)排序,而不是按 ” 從小到大 “ 的順序(升序)排序。我們會(huì)解釋為什么降序索引很重要,并說(shuō)明降序索引如何工作。

      反向鍵索引( reverse key index ):這也是 B* 樹(shù)索引,只不過(guò)鍵中的字節(jié)會(huì) “ 反轉(zhuǎn) “ 。利用反向鍵索引,如果索引中填充的是遞增的值,索引條目在索引中可以得到更均勻的分布。例如,如果使用一個(gè)序列來(lái)生成主鍵,這個(gè)序列將生成諸如 987500 、 987501 、 987502 等值。這些值是順序的,所以倘若使用一 個(gè)傳統(tǒng)的 B* 樹(shù)索引,這些值就可能放在同一個(gè)右側(cè)塊上,這就加劇了對(duì)這一塊的競(jìng)爭(zhēng)。利用反向鍵, Oracl e則會(huì)邏輯地對(duì) 205789 、 105789 、 005789 等建立索引。 Oracle 將數(shù)據(jù)放在索引中之前,將先 把所存儲(chǔ)數(shù)據(jù)的字節(jié)反轉(zhuǎn),這樣原來(lái)可能在索引中相鄰放置的值在字節(jié)反轉(zhuǎn)之后就會(huì)相距很遠(yuǎn)。通過(guò)反轉(zhuǎn)字節(jié),對(duì)索引的插入就會(huì)分布到多個(gè)塊上。

      2、 位圖索引( bitmap index )

      在一顆 B* 樹(shù)中,通常索引條目和行之間存在一種一對(duì)一的關(guān)系:一個(gè) 索引條目就指向一行。而對(duì)于位圖索引,一個(gè)索引條目則使用一個(gè)位圖同時(shí)指向多行。位圖索引適用于高度重復(fù)而且通常只讀的數(shù)據(jù)(高度重復(fù)是指相對(duì)于表中的總行數(shù),數(shù)據(jù)只有很少的幾個(gè)不同值)。考慮在一 個(gè)有 100 萬(wàn)行的表中,每個(gè)列只有 3 個(gè)可取值: Y 、 N 和 NULL 。舉例來(lái)說(shuō),如果你需要頻繁地統(tǒng)計(jì)多少行有值Y ,這就很適合建立位圖索引。不過(guò)并不是說(shuō)如果這個(gè)表中某一列有 11.000 個(gè)不同的值就不能建立位圖索引,這一列當(dāng)然也可以建立 位圖索引。在一個(gè) OLTP 數(shù)據(jù)庫(kù)中,由于存在并發(fā)性相關(guān)的問(wèn)題,所以不能考慮使用位圖索引(后面我們就會(huì)討論這一點(diǎn))。注意,位圖索引要求使用 Oracle 企業(yè)版或個(gè)人版。

      位圖聯(lián)結(jié)索引( bitmap join index ):這為索引結(jié)構(gòu)(而不是表)中的數(shù)據(jù)提供了一種逆規(guī)范化的 方法。例如,請(qǐng)考慮簡(jiǎn)單的 EMP 和 DEPT 表。有人可能會(huì)問(wèn)這樣一個(gè)問(wèn)題: “ 多少人在位于波士頓的部門(mén)工作 ?“ EMP 有一個(gè)指向 DEPT 的外鍵,要想統(tǒng)計(jì) LOC 值為 Boston 的部門(mén)中的員工人數(shù),通常必須完成表聯(lián)結(jié),將 LOC 列聯(lián)結(jié)至 EMP 記錄來(lái)回答這個(gè)問(wèn)題。通過(guò)使用位圖聯(lián)結(jié)索引,則可以在 EMP 表上對(duì) LOC 列建立索引 。

      3、 基于函數(shù)的索引( function-based index )

      這些就是 B* 樹(shù)索引或位圖索引,它將一個(gè)函數(shù)計(jì)算得到的結(jié)果存儲(chǔ)在行的列中,而不是存儲(chǔ)列數(shù)據(jù)本身??梢园鸦诤瘮?shù)的索引看作一個(gè)虛擬列(或派生列)上的索引,換句話(huà)說(shuō),這個(gè)列并不物理存儲(chǔ)在表中?;诤瘮?shù)的索引可以用于加快形如 SELECT * FROM T W HERE FUNCTION(DATABASE_COLUMN) = SAME_VALUE 這樣的查詢(xún),因?yàn)橹?FUNCTION(DATABASE_COLUMN) 已經(jīng)提前計(jì)算并存儲(chǔ)在索引中。

      4、 應(yīng)用域索引( application domain index )

      應(yīng)用域索引是你自己構(gòu)建和存儲(chǔ)的索引,可能存儲(chǔ)在Oracle 中,也可能在 Oracle 之外。你要告訴優(yōu)化器索引的選擇性如何,以及執(zhí)行的開(kāi)銷(xiāo)有多大,優(yōu)化器則會(huì)根據(jù)你提供的信息來(lái)決定是否使用你的索引。 Oracle 文本索引就是應(yīng)用域索引的一個(gè)例子;你也可 以使用構(gòu)建 Oracle 文本索引所用的工具來(lái)建立自己的索引。需要指出,這里創(chuàng)建的 “ 索引 “ 不需要使用傳統(tǒng)的索引結(jié)構(gòu)。例如, Oracle 文本索引就使用了一組表來(lái)實(shí)現(xiàn)其索引概念。

      5、HASH索引

      使用HASH索引必須要使用HASH群集。建立一個(gè)群集或HASH群集的同時(shí),也就定義了一個(gè)群集鍵。這個(gè)鍵告訴Oracle如何在群集上存儲(chǔ)表。在存儲(chǔ)數(shù)據(jù)時(shí),所有與這個(gè)群集鍵相關(guān)的行都被存儲(chǔ)在一個(gè)數(shù)據(jù)庫(kù)塊上。若數(shù)據(jù)都存儲(chǔ)在同一個(gè)數(shù)據(jù)庫(kù)塊上,并且使用了HASH索引,Oracle就可以通過(guò)執(zhí)行一個(gè)HASH函數(shù)和I/O來(lái)訪(fǎng)問(wèn)數(shù)據(jù)——而通過(guò)適用一個(gè)二元高度為4的B-樹(shù)索引來(lái)訪(fǎng)問(wèn)數(shù)據(jù),則需要在檢索數(shù)據(jù)時(shí)使用4個(gè)I/O。

      技巧:HASH索引在有限制條件(需要指定一個(gè)確定的值而不是一個(gè)值范圍)的情況下非常有用。

      6、分區(qū)索引

      分區(qū)索引就是簡(jiǎn)單地把一個(gè)索引分成多個(gè)片斷,這樣可以訪(fǎng)問(wèn)更小的片斷,并且可以把這些片斷分別存放在不同的硬盤(pán)上(避免I/O問(wèn)題)。B-數(shù)索引和位圖索引都可以被分區(qū),HASH索引不可以被分區(qū)。

      有兩種類(lèi)型的分區(qū)索引:本地分區(qū)索引和全局分區(qū)索引。每個(gè)類(lèi)型都有兩個(gè)子類(lèi)型,有前綴索引和無(wú)前綴索引。如果使用了位圖索引就必須是本地索引。

      把索引分區(qū)最主要的原因是可以減少所需讀取的索引的大小,另外把分區(qū)放在不同的表空間中可以提高分區(qū)的可用性和可靠性。

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

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