<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Oracle中的索引詳解

       

      Oracle中的索引概述 

          索引與表一樣,也屬于段(segment)的一種。里面存放了用戶的數據,跟表一樣需要占用磁盤空間。索引是一種允許直接訪問數據表中某一數據行的樹型結構,為了提高查詢效率而引入,是一個獨立于表的對象,可以存放在與表不同的表空間中。索引記錄中存有索引關鍵字和指向表中數據的指針(地址)。對索引進行的I/O操作比對表進行操作要少很多。索引一旦被建立就將被Oracle系統自動維護,查詢語句中不用指定使用哪個索引.

         從物理上說,索引通常可以分為:分區和非分區索引、常規B樹索引、位圖(bitmap)索引、翻轉(reverse)索引等。其中,B樹索引屬于最常見的索引。

       

      一、 ROWID的概念

      存儲了row在數據文件中的具體位置:64位 編碼的數據,A-Z, a-z, 0-9, +, 和 /,

      row在數據塊中的存儲方式

      SELECT ROWID, last_name FROM hr.employees WHERE department_id = 20;

      比 如:OOOOOOFFFBBBBBBRRR

      OOOOOO:data object number, 對應dba_objects.data_object_id

      FFF:file#, 對應v$datafile.file#

      BBBBBB:block#

      RRR:row#

      Dbms_rowid包

      SELECT dbms_rowid.rowid_block_number('AAAGFqAABAAAIWEAAA') from dual;

      具 體到特定的物理文件

      二、 索引的概念

      1、 類似書的目錄結構

      2、 Oracle 的“索引”對象,與表關聯的可選對象,提高SQL查詢語句的速度

      3、 索引直接指向包含所查詢值的行的位置,減少磁盤I/O

      4、 與所索引的表是相互獨立的物理結構

      5、 Oracle 自動使用并維護索引,插入、刪除、更新表后,自動更新索引

      6、 語法:CREATE INDEX index ON table (column[, column]...);

      7、 B-tree結構(非bitmap):

      [一]了解索引的工作原理:

      表:emp

      目標:查詢Frank的工資salary

      建立索 引:create index emp_name_idx on emp(name);

       


      [試驗]測試索引的作用:

      1. 運行/rdbms/admin/utlxplan 腳本

      2. 建立測試表

      create table t as select * from dba_objects;

      insert into t select * from t;

      create table indextable

      as select rownum id,owner,object_name,subobject_name,

      object_id,data_object_id,object_type,created

      from t;

      3. set autotrace trace explain

      4. set timing on

      5. 分析表,可以得到cost

      6. 查詢 object_name=’DBA_INDEXES’

      7. 在object_name列上建立索引

      8. 再查詢

      [思考]索引的代價:

      插入,更新

      三、 唯一索引

      1、 何時創建:當某列任意兩行的值都不相同

      2、 當建立Primary Key(主鍵)或者Unique constraint(唯一約束)時,唯一索引將被自動建立

      3、 語法:CREATE UNIQUE INDEX index ON table (column);

      4、 演示

      四、 組合索引

      1、 何時創建:當兩個或多個列經常一起出現在where條件中時,則在這些列上同時創建組合索引

      2、 組合索引中列的順序是任意的,也無需相鄰。但是建議將最頻繁訪問的列放在列表的最前面

      3、 演示(組合列,單獨列)

      五、 位圖索引

      1、 何時創建:

      列中有非常多的重復的值時候。例如某列保存了 “性別”信息。

      Where 條件中包含了很多OR操作符。

      較少的update操作,因為要相應的跟新所有的bitmap

      2、 結構:位圖索引使用位圖作為鍵值,對于表中的每一數據行位圖包含了TRUE(1)、FALSE(0)、或NULL值。

      3、 優點:位圖以一種壓縮格式存放,因此占用的磁盤空間比標準索引要小得多

      4、 語法:CREATE BITMAP INDEX index ON table (column[, column]...);

      5、 掩飾:

      create table bitmaptable as select * from indextable where owner in('SYS','PUBLIC');

      分析,查找,建立索引,查找

      六、 基于函數的索引

         1、 何時創建:在WHERE條件語句中包含函數或者表達式時

      2、 函數包括:算數表達式、PL/SQL函數、程序包函數、SQL函數、用戶自定義函數。

      3、 語法:CREATE INDEX index ON table (FUNCTION(column));

      4、 演示

      必須要分析表,并且 query_rewrite_enabled=TRUE

      或者使用提示/*+ INDEX(ic_index)*/

      七、 反向鍵索引

      目的:比如索引值是一個自動增長的列:

      多個用戶對集中在少數塊上的索引行進行修改,容易引起資源的爭用,比如對數據塊的等待。此時建立反向索 引。

      性能問題:

      語法:

      重建為標準索引:反之不行

      八、 鍵壓縮索引

      比如表landscp的數據如下:

      site feature job

      Britten Park, Rose Bed 1, Prune

      Britten Park, Rose Bed 1, Mulch

      Britten Park, Rose Bed 1,Spray

      Britten Park, Shrub Bed 1, Mulch

      Britten Park, Shrub Bed 1, Weed

      Britten Park, Shrub Bed 1, Hoe

      ……

      查詢時,以上3列均在where條件中同時出現,所以建立基于以上3列的組合索引。但是發現重復值很多,所以考慮壓縮特性。

      Create index zip_idx

      on landscp(site, feature, job)

      compress 2;

      將索引項分成前綴(prefix)和后綴(postfix)兩部分。前兩項被放置到前綴部分。

      Prefix 0: Britten Park, Rose Bed 1

      Prefix 1: Britten Park, Shrub Bed 1

      實際所以的結構為:

      0 Prune

      0 Mulch

      0 Spray

      1 Mulch

      1 Weed

      1 Hoe

      特點:組合索引的前綴部分具 有非選擇性時,考慮使用壓縮。減少I/O,增加性能。

      九、 索引組織表(IOT)

      將表中的數據按照索 引的結構存儲在索引中,提高查詢速度。

      犧牲插入更新的性能,換取查詢 性能。通常用于數據倉庫,提供大量的查詢,極少的插入修改工作。

      必須指定主鍵。插入數據時,會根據主鍵列進行B樹索引排序,寫入磁盤。

      十、 分區索引

      簇:

      A cluster is a group of tables that share the same data blocks because they share common columns and are often used together.

      posted @ 2015-02-15 14:37  無雙的小寶  閱讀(20618)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 老湿机69福利区无码| 麻豆a级片| 午夜通通国产精品福利| 国内精品久久久久影院薰衣草| 国产一区二区高潮视频| 成人午夜av在线播放| 黑人大群体交免费视频| 国内熟妇人妻色在线视频| 文化| 国产精品视频一区不卡| 国产SM重味一区二区三区| 久99久热只有精品国产99| 亚洲综合网国产精品一区| 国产精品午夜福利免费看| 亚洲中少妇久久中文字幕| 鹿泉市| 亚洲真人无码永久在线| 色欧美片视频在线观看| 九九热在线视频观看这里只有精品 | 一边添奶一边添p好爽视频| 日韩精品一区二区在线看| 精品中文人妻在线不卡| 国产精品亚洲А∨天堂免| 女子spa高潮呻吟抽搐| 婷婷四虎东京热无码群交双飞视频 | 欧洲中文字幕一区二区| 国产免费午夜福利757| 日韩亚洲国产中文永久| 国产精品无码久久久久AV| 香蕉乱码成人久久天堂爱| 国产一区二区不卡在线| 国产精品中文字幕观看| 久热这里有精品视频播放| 夜色福利站WWW国产在线视频| 国产精品成人免费视频网站京东| 国产精品久久久久久久久电影网| 国产系列高清精品第一页| 亚洲精品美女久久久久9999| 污污网站18禁在线永久免费观看| 欧美人妻久久精品| 午夜dv内射一区二区|