成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Oracle中的索引講解

瀏覽:143日期:2023-03-12 15:25:07

一、B-樹索引

索引一般是B-Tree索引,在索引結構中存儲著鍵值和鍵值的RowID,并且是一一對應的。

create [unique] index studentin student(id [desc]);

選項擇索引字段的原則:

(ORACLE在UNIQUE和主鍵字段上自動建立索引 。)

  • 在WHERE子句中最頻繁使用的字段 。
  • 聯接語句中的連接字段。
  • 選擇高選擇性的字段(即如果很少的字段擁有相同值,即有很多獨特值,可以快速查找到所需數據的字段) .
  • 在聯機事務處理(OLTP)環境下,所由并發性非常高,索引經常被修改,可以建B-TREE索引,不應該建位圖索引 。
  • 不要在經常被修改的字段上建索引,可建函數索引。
  • 不要在有用到函數的字段上建索引。
  • B-Tree索引不包含null的數據。 
    可以建立一個“偽”復合索引解決。eg:
    create index my_ix on my_table(my_col,0);
    也可以用函數索引將不想索引,即使不是null也可以剔除。eg:
    create index a on table(decode(status,0,0))--只關心少數status為0的行。

二、復合索引

索引可以包含一個、兩個或更多個列。兩個或更多個列上的索引被稱作復合索引。例如,以下語句創建一個具有兩列的復合索引:(復合索引列數量不超過32個)

CREATE INDEX name  ON employee (emp_lname, emp_fname)

復合索引的第一列稱為前導列(leading column)。

復合索引字段排序的原則:

  • WHERE子句中使用到的字段需要是復合索引的前導字段,若僅對后面的任意列執行搜索時,則應該創建另一個僅包含第二列的索引。
  • 如果某個字段在WHERE子句中最頻繁使用,則在建立復合索引時,考慮把這個字段排在第一位(在CREATE INDEX語句中)
  • 如果所有的字段在WHERE子句中使用頻率相同,則將低選擇性列排在最前面,將選擇性較強的列排在最后面
  • 如果所有的字段在WHERE子句中使用頻率相同,如果數據在物理上是按某一個字段排序的,則考慮將這個字段放在復合索引的第一位 。
  • 在主鍵索引(復合主鍵)中列的順序被強制為與列在表定義中出現的順序相同,這與 PRIMARY KEY 約束中指定的列順序無關.
  • 索引列的排序方式必須與 ORDER BY 子句完全相同或完全相反。否則不能得到性能優化。
CREATE INDEX idx_example ON table1 (col1 ASC, col2 DESC, col3 ASC)

在這種情況下,以下查詢可以得到優化:

SELECT col1, col2, col3 from table1 ORDER BY col1 ASC, col2 DESC, col3 ASC

SELECT col1, col2, col3 from example ORDER BY col1 DESC, col2 ASC, col3 DESC
  • 復合索引的前導字段is (not) null 可以使用索引。

三、位圖索引

創建語法是在普通索引創建的語法中index前加關鍵字bitmap即可,例如:

create bitmap index t_ix_執行人 on t(執行人);

位圖索引主要針對大量相同值的列而創建(例如:類別,操作員,部門ID,庫房ID等)。

索引塊的一個索引行中存儲鍵值和起止Rowid,以及這些鍵值的位置編碼。

位圖索引存儲數據的方式相對于B-Tree索引,占用的空間非常小,創建時不需要排序,定位存儲,創建和使用非??臁?/p>

位圖索引的特點:

  • Bitmap索引允許鍵值為空,對位圖索引列進行is(not) null查詢時,則可以使用索引。
  • Bitmap索引對表記錄的高效訪問。當使用count(XX),可以直接訪問索引就快速得出統計數據。當根據位圖索引的列進行and,or或 in(x,y,..)查詢時,直接用索引的位圖進行或運算。
  • Bitmap索引對批量DML操作只需進行一次索引。
  • 位圖索引由于用位圖反映數據,不同會話更新相同鍵值的同一位圖段,insert、update、delete相互操作都會發鎖定(未提交時)。
  • 由于并發DML操作鎖定的是整個位圖段的大量數據行,所以位圖索引主要是用于聯機分析處理(OLAP)應用。

四、函數索引

比如執行如下一條SQL語句:

select * from emp where upper(ename) = "KING",

即使在ename上建立了索引,還是會全表掃描emp表,將里面的ename字段改成大寫跟常量KING進行比較。 
如果我們建立一個基于函數的索引,比如:

create index emp_upper_idx on emp(upper(ename));

這個時候,我們只需要按區間掃描小部分數據,然后獲取rowid取訪問表中的數據,這個速度是比較快的。

函數索引的特點:

  • 基于函數的索引,類似于普通的索引,只是普通的索引是建立在列上,而它是建立在函數上。當然這回對插入數據有一定影響,因為需要通過函數計算一下,然后生成索引。但是插入數據一般都是少量插入,而查詢數據一般數據量比較大。為了優化查詢速度,稍微降低點插入速度是可以承擔的。
  • 函數索引還有一個功能,只對部分行建立索引。 
    假設有一個很大的表,有一列叫做FLAG,只可能取Y和N。假設大部分數據是Y,小部分數據是N,我們需要將N修改成Y。

如果建立一個普通索引,這個索引會非常大,而且將N修改成Y的時候,維護這個索引開銷會很大。

如果建立一個位圖索引,但這是一個事務系統(OLTP),可能有很多人同時插入記錄,或者進行修改。那么位圖索引也不適合。所以,如果我們只是在值為N的行上建立索引,就比較好辦了。 
只在值為N的行建立索引:

create index flag_index on big_table(case flag when "N" then "N" end);

這樣一個索引大小會大大降低,而且維護成本也會很低的。前提是我們只對值為N的行感興趣。

五、維護索引

  • 字典表:all_indexes、user_indexes
  • 重建索引:alter index dep_idx rebuild [online]
  • 刪除索引:drop index dep_idx;

到此這篇關于Oracle索引的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持。

標簽: Oracle
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
久久精品一区蜜桃臀影院| 欧美色老头old∨ideo| 亚洲在线免费| 久久久综合网站| 成人高清免费观看| 在线播放/欧美激情| 免费人成在线不卡| 色狠狠综合天天综合综合| 亚洲国产精品精华液网站| 在线高清一区| 自拍av一区二区三区| 国产精品v亚洲精品v日韩精品 | 国产精品66部| 欧美日韩不卡视频| 国产一区在线视频| 宅男噜噜噜66一区二区66| 国产乱人伦偷精品视频不卡| 3atv一区二区三区| 国内成人自拍视频| 欧美日韩一级视频| 国产精品一区二区x88av| 欧美一级日韩免费不卡| 东方aⅴ免费观看久久av| 欧美电影免费观看高清完整版在| 成人动漫在线一区| wwww国产精品欧美| 欧美日韩91| 国产日产亚洲精品系列| 国产精品xxx在线观看www| 欧美韩国日本综合| 色综合天天综合网天天狠天天| 精品国产乱码久久久久久图片| 99精品国产99久久久久久白柏| 国产欧美日韩激情| 亚洲精品一区二| 亚洲图片欧美视频| 色猫猫国产区一区二在线视频| 六月丁香综合在线视频| 欧美日韩一区 二区 三区 久久精品| 久久66热偷产精品| 欧美v国产在线一区二区三区| 亚洲欧美一区在线| 综合久久综合久久| 美女91精品| 国产一区二区三区香蕉| 精品久久久久久亚洲综合网 | 色婷婷综合中文久久一本| 丝袜美腿亚洲综合| 欧美日韩国产123区| 成人自拍视频在线观看| 中文字幕欧美国产| 午夜一级在线看亚洲| 日韩精品电影一区亚洲| 欧美日韩视频一区二区| 成人av片在线观看| 亚洲色图.com| 久久aⅴ国产紧身牛仔裤| 韩国毛片一区二区三区| 久久久久久久久久久久电影| 99精品免费网| 六月丁香婷婷色狠狠久久| 久久在线观看免费| 国产欧美亚洲日本| 久久99精品国产.久久久久久| 久久蜜桃av一区二区天堂| 99精品福利视频| 加勒比av一区二区| 国产三级精品在线| 榴莲视频成人在线观看| 国产成人av福利| 日韩一区在线看| 色老头久久综合| 99国产精品久久| 亚洲va欧美va人人爽午夜| 3751色影院一区二区三区| 黄色日韩精品| 蜜臀精品一区二区三区在线观看| 久久午夜羞羞影院免费观看| 性伦欧美刺激片在线观看| 国产成人精品aa毛片| 亚洲视频一区在线观看| 欧美日韩亚州综合| 在线高清一区| 黄色日韩三级电影| 中文字幕亚洲电影| 欧美日韩免费视频| 在线电影一区| 国产精品一区二区久久不卡| 亚洲视频在线观看三级| 欧美一区二区三区在线看| 亚洲区一区二| 国产成人在线视频网址| 亚洲视频在线观看三级| 日韩一级高清毛片| 国产农村妇女毛片精品久久莱园子| 国产91高潮流白浆在线麻豆| 亚洲一二三四在线| 国产婷婷精品av在线| 欧美色图免费看| 精品福利电影| 国产成人一区二区精品非洲| 亚洲另类中文字| 欧美成人艳星乳罩| 久久久久久久久久码影片| 欧美激情四色| 国产伦精一区二区三区| 亚洲一区二区av电影| 久久欧美一区二区| 欧美午夜一区二区三区免费大片| 影音先锋中文字幕一区二区| 国产精品一区二区三区四区| 亚洲成国产人片在线观看| 亚洲国产高清在线观看视频| 9191成人精品久久| 久久深夜福利| 亚洲国产精品第一区二区| 国产精品99精品久久免费| 亚洲国产精品视频| 国产情人综合久久777777| 69久久99精品久久久久婷婷 | 久久蜜桃av一区二区天堂| 色播五月激情综合网| 亚洲午夜在线观看| 高清国产一区二区| 日韩国产精品大片| 亚洲欧洲制服丝袜| 久久久久久夜精品精品免费| 欧美精品一级二级| 亚洲在线黄色| 亚洲一级特黄| 91网站最新地址| 韩国视频一区二区| 日韩在线卡一卡二| 一区二区三区四区在线免费观看 | 麻豆一区二区三区| 亚洲国产一区二区在线播放| 国产精品日日摸夜夜摸av| 精品捆绑美女sm三区| 欧美精品日韩一本| 久久久久久穴| 国产欧美日韩亚洲| 国产一区欧美| 91色九色蝌蚪| 国产99久久久精品| 国产在线视频不卡二| 日本中文字幕一区二区视频| 亚洲欧美另类久久久精品2019| 国产三级欧美三级| 久久影院视频免费| 日韩视频123| 777欧美精品| 欧美日韩成人综合天天影院| 91福利资源站| 久久久久久久久久码影片| 亚洲专区一区| 国产日本精品| 日韩亚洲精品在线| 亚洲高清不卡一区| 亚洲性感美女99在线| 欧美日韩一区二| 欧美精品亚洲精品| 欧美日本一区二区视频在线观看 | 日韩在线卡一卡二| 亚洲一级不卡视频| 亚洲精品国产一区二区精华液| 国产精品久久久久久久久久免费看| 久久人人超碰精品| 2022国产精品视频| 精品日韩在线观看| 久久综合网色—综合色88| 久久麻豆一区二区| 国产丝袜欧美中文另类| 国产偷国产偷精品高清尤物| 国产欧美日韩麻豆91| 国产精品天干天干在观线| 中文字幕高清不卡| 国产精品久久久久桃色tv| 自拍偷自拍亚洲精品播放| 亚洲色图欧美偷拍| 亚洲国产另类av| 五月婷婷激情综合网| 亚洲成人资源网| 日韩专区在线视频| 久久精工是国产品牌吗| 韩国欧美国产1区| 国产精品亚洲第一| 波多野结衣在线一区| 91免费观看国产| 国产精品久久| 最新日韩av| 国产伦精品一区二区三| 久久亚洲午夜电影| 欧美日韩精品一区二区三区蜜桃 | 久久久噜噜噜久久中文字幕色伊伊| 精品国产伦理网| 国产婷婷色一区二区三区四区 | 一本高清dvd不卡在线观看| 91久久精品一区二区二区| 欧美日韩一区二区电影| 欧美一二三区精品|