成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle索引如何提高數據庫的查詢效率

數據庫 Oracle
隨著Oracle位圖索引的開發也提高了查詢效率,它是在實際運用的某些方面起到了相當的作用,但是如果你把Oracle位圖索引用錯地方的話,會出現不少的麻煩。

 Oracle索引可以說在很大程度上提高了數據庫的相關查詢效率。但是我們如果對索引的使用不當時,那么就會反而引起相反的效果。如下圖所示的表,該采用什么索引呢?筆者借這個機會,跟大家討論一下位圖索引的使用時機以及注意事項。

眾所周知,索引可以在很大程度上提高數據庫的查詢效率。但是如果索引使用不當,如在不恰當的地方采用了不恰當的索引,那么反而會起到適得其反的效果。如下圖所示的表,該采用什么索引呢?筆者借這個機會,跟大家討論一下位圖索引的使用時機以及注意事項。

一、 B樹索引的缺陷

在實際工作中,B樹索引是Oracle數據庫中最常用的一種索引。如在使用Create Index語句創建索引的時候,默認采用的就是B樹索引。在B樹索引中,是通過在索引中保存排序過的索引列以及其對應的Rowid列的值來實現的。不過對于某些比較特殊的情況,如基數比較小的列,使用這個B樹索引反而會降低數據庫的查詢效率。

基數在Oracle數據庫中指的是某個列可能擁有的不重復數值的個數。如上圖為例,SEX指員工的性別,一般就只有男女兩個值(其中1代表男、0代表女),其基數就為2。假設企業要組織公司所有的女員工出去旅游,作為三八婦女節的禮物。為此就需要查詢出公司所有女員工的信息。此時如果在性別列上加入B樹索引,那么反而會得到適得其反的效果。查詢效率不但沒有提升,反而下降。

在這些基數比較小的列上創建B樹索引并對其進行查詢的話,系統就會返回大量的記錄。因而這并不是具有高度選擇性的索引,并不能夠顯著提高查詢的速度。當然并不是說B樹索引不好,而是指其沒有用對地方。

二、 位圖索引的特點以及使用時機

在數據庫中(包括Sql Server數據庫),對于這種基數比較小的列,如果只有有限的幾個固定值,如上表中的性別、婚姻狀況等等,要為其建立索引的話,采用的就應該是位圖索引,而不是B樹索引。

位圖索引為什么可以提高基數比較小的表的查詢速度呢?這主要是因為在創建Oracle位圖索引的時候,數據庫往往會對整個表進行掃描,并未索引列的每個取值建立一個位圖(位圖索引的名字也由此而來)。在這個位圖中,為表中的每一行使用一個位元來表示該行是否包含該位圖的索引列的取值。位元到行的ROWID的對應關系通過位圖索引中的應收函數來完成。如此的話,位圖索引就能夠以一種完全不同的內部機制來完成與B樹索引相同的功能。

另外值得一提的是,對于B樹索引而言,如果在查詢條件語句中采用了AND等操作符號,其查詢的效率會大打折扣。故在數據庫優化中,會建議大家不要使用這些操作符,改用其他操作符代替。不過如果采用Oracle位圖索引的話,則沒有這方面的顧慮。如上例所示,假設用戶需要查找已婚的女性,那么就可以使用如下的語句查詢。

 

  1. select t.*, t.rowid  
  2. from userinfo t  
  3. where t.merital=’已婚’ and t.sex=0 

 

這個查詢引用了一些創建了Oracle位圖索引的列時,這些位圖可以很方便的與AND或者OR操作符結合以找出想要的數據。數據庫在后臺處理的時候,先利用已經創建的位圖進行邏輯運算,然后計算結果位圖中1的個數,就可以查詢到滿足條件的所有記錄。如果查詢到結果后還需要更改數據的話,那么只需要按照結果位圖中取1的位元對應的ROWID列的值進行映射即可。

【編輯推薦】

  1. Oracle用戶密碼的修改
  2. Oracle客戶關系管理論壇的內容簡介
  3. Oracle RAC中錯誤觀點出現的原因
  4. Oracle應用的程序開發趨于向Web的緣由
  5. Oracle索引掃描中的四中類型描述
責任編輯:佚名 來源: 互聯網
相關推薦

2010-10-27 14:15:44

Oracle數據庫效率

2010-10-25 10:55:11

Oracle函數索引

2011-04-02 09:33:08

MySQL數據庫查詢效率

2011-04-02 09:23:19

MySQL數據庫查詢效率

2011-04-02 09:33:13

MySQL數據庫查詢效率

2011-04-11 16:50:13

Oracle數據庫索引

2010-11-15 16:46:49

Oracle查詢效率

2011-03-16 08:54:45

Oracle數據庫索引

2010-04-27 16:41:07

Oracle性能

2023-08-29 10:53:36

2010-08-31 13:35:53

DB2備份恢復

2010-05-10 15:50:39

Oracle數據庫性能

2011-03-11 17:16:02

JSP操作數據庫訪問效率

2010-05-07 18:21:42

Oracle提高SQL

2011-05-19 11:33:38

數據庫訪問速度

2018-01-10 09:33:18

數據庫SQL查詢優化Java Web

2009-06-30 15:54:00

數據庫訪問JSP

2023-11-16 17:12:33

數據庫oracle

2011-03-17 14:48:49

高級掃描數據庫查詢

2011-07-27 13:22:35

檢查索引碎片Oracle數據庫重建索引
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久av | caoporn国产| 特级黄色毛片 | 精品亚洲一区二区三区四区五区 | 精品视频久久久 | h视频在线播放 | 亚洲一区二区三区高清 | 黄色成人国产 | av天天看| 成年人在线视频 | 97日日碰人人模人人澡分享吧 | 亚洲精品视频在线播放 | 91原创视频在线观看 | 九九热免费在线观看 | 日韩精品av一区二区三区 | 毛片大全 | 蜜月aⅴ国产精品 | 在线国产视频 | 女人av| 九九99精品 | 亚洲精品中文字幕av | 韩国理论电影在线 | 日韩欧美成人一区二区三区 | 九九热精品视频 | 日韩成人影院在线观看 | 午夜av电影院 | 精品国产免费人成在线观看 | 精品一区二区三区日本 | 午夜精品在线 | 亚洲色欲色欲www | 国产精品美女久久久久久免费 | 国产a级毛毛片 | 天天干国产 | 手机av在线| 综合久久久久 | 亚洲视频在线一区 | 九九热在线免费观看 | 日韩看片 | 国产成人短视频在线观看 | 国产精品日日摸夜夜添夜夜av | 黄色片免费|