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

深度揭露Oracle索引使用中的限制

數據庫 Oracle 數據庫運維
眾所周知,索引確實可以提高數據庫的性能。但是大家對索引的使用限制卻一口未提。本文的作者將為大家深度分析這些使用中的限制。

筆者認為對于數據庫索引的作用,應該分兩面看。除了肯定其對數據庫性能帶來的正面影響外,還需要認識到其可能帶來的負面影響。只有如此,數據庫管理員才能夠在正確的場合使用正確的索引。要知道有時候一個錯誤的索引可能引發死鎖,并導致數據庫性能的急劇下降或進程終止;而如果數據庫管理員能夠做出一個正確的判斷的話,那么可以使那些本來要運行幾個小時甚至一天的進程在幾分鐘之內就能夠完成。所以這兩個差距是一個天上、一個地下。故筆者希望通過這篇文章能夠讓各位讀者了解索引在使用過程中的限制,了解索引并不是萬能的。

一、索引對數據庫性能的影響跟數據選擇性直接掛鉤。

當用戶從數據表中查詢數據時,Oracle數據庫提供了兩種查詢的方式。一是從表中讀取每一行,就是大家常說的全表掃描;二是通過ROWID一此讀取一行。當表中記錄比較多的時候,很明顯第二種方式能夠更快的定位記錄內容。而索引其實就是建立在這個查詢原理之上的。如現在某個表中有300多萬條記錄,而現在用戶可能只需要了解其中的10條記錄信息。此時如果使用索引標識讀取的塊,則可以執行比較少的I/O,數據庫系統會很快找到用戶所需要的內容。而如果沒有使用索引的話,則需要讀取表中所有的塊。

如果在這個表中加入了索引,那么到底對數據庫的性能影響有多大呢?這個就不好說了,因為其跟很多因素相關。如跟數據選擇性直接相關。如果用戶的數據非常具有選擇性,則表中家功能只有很少的行匹配索引值,則Oracle將能夠快速查詢匹配所引值得ROWID的索引,并且可以快速查詢少量的相關表快。如還是上面這個表中,其如果存儲有某個市的所有常住人口信息,其中身份證號碼肯定是少不了的。如此時用戶想根據身份證號碼來查詢某個人的信息時,那么數據庫能夠在很短的時間內給出響應。這主要是因為用戶提供的數據非常具有選擇性,基本上跟數據庫中的索引值是一一對應的。而如果用戶想通過出身年月信息來查詢信息的話,則其數據庫反映的速度就會比較慢了。

可見索引對數據庫性能的影響直接跟數據的選擇性掛鉤。這對于數據庫管理員設計索引時很有啟發性。如數據庫管理員在設計索引時,最好能夠選擇哪些具有唯一性的字段或者重復性比較少的字段。如此的話,索引對于數據庫性能來說才有比較大的價值。

二、索引效果跟數據庫中記錄的具體存儲位置相關。

還是上面這張表中,如果現在用戶想查找年齡超過100歲的老人,要對他們去進行慰問。假設現在符合這個條件的人只有10人。那么此時索引對數據庫性能會有怎么樣的影響呢?此時顯然數據非常具有選擇性,但是并不一定索引能夠起到很好的效果。這還要看其具體存儲的位置。如果這十條記錄在硬盤中存儲的物理位置比較近,如可能在同一個扇區之內,則此時索引對于數據庫性能的影響就會比較大,能夠在最短時間內找到符合條件的數據。但是如果相關的行在表中存儲的位置并不互相靠近,則這個索引的效果就會逐漸減少。因為如果匹配索引值的數據分散在硬盤上的多個酷愛時,則必須從表中選擇多個單獨的塊以滿足查詢。

數據庫管理員對于這一點要特別注意。因為此時如果數據庫管理員查用了索引的話,那么很可能是畫蛇添足。筆者建議,當數據庫管理員發現數據分散在表的多個塊的時候,最好是不要使用索引,而是執行全表掃描。此時執行掃描反而會比執行索引的效率更高。因為在執行全表掃描的時候,Oracle數據庫系統會使用多塊讀取以加速掃描表。而如果采用索引的話,則其讀取數據時是單塊讀取的。而由于數據存儲在多個塊中,所以其讀取的速度反而會更慢。

由此可見,Oracle數據庫管理員在數據庫設計與日常維護中,也要想辦法能夠讓數據盡量存儲在臨近的位置。如盡量減少在同一個服務器中不要部署不同的應用服務,防止硬盤產生過多的磁盤碎片;如需要采用多塊硬盤的話,則最好通過表空間把類似的表放在同一個表空間中,從而讓相關的行在表zhognd存儲位置盡量靠近,以提高索引的使用效果。也就是說,數據庫管理員在使用索引的時候,為表中的字段建立了索引這只是其工作的第一步。在后續數據庫維護與調整的過程中,仍然要注意數據存儲位置對索引的影響。

【編輯推薦】

  1. Oracle設置系統參數進行性能優化
  2. 淺談Oracle性能優化可能出現的問題
  3. 詳解Oracle數據庫中文全文索引
責任編輯:彭凡 來源: IT專家網
相關推薦

2011-04-14 13:18:11

Oracle

2010-04-23 17:50:15

Oracle索引

2009-07-15 08:46:27

Oracle外部表

2010-04-21 13:43:31

Oracle聚簇索引

2010-10-26 17:41:05

Oracle索引

2021-08-27 22:07:55

Oracle索引位圖

2011-03-23 15:57:43

Oracle索引

2010-10-26 17:34:03

Oracle索引

2010-04-07 10:02:31

2010-07-30 09:42:37

Flex播放器

2010-03-30 18:11:24

Oracle創建

2011-08-02 13:08:06

Oracle索引

2010-10-25 10:55:11

Oracle函數索引

2010-04-09 10:52:30

Oracle數據對象

2010-08-23 15:59:33

MarginCSS

2010-10-26 16:33:54

創建Oracle索引

2010-11-16 09:18:39

oracle重建索引

2010-10-27 13:47:50

Oracle索引

2010-05-20 16:27:05

2011-04-08 15:50:54

Oracleover函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美三级久久久 | www.亚洲一区二区 | 视频三区 | 国产精品国产精品 | 精品视频在线观看 | 男女网站免费观看 | 久久99国产精品 | 久久亚洲一区二区三区四区 | 欧美一区2区三区4区公司 | 成人av电影在线 | 一级在线免费观看 | 亚洲三区在线观看 | 精品国产乱码久久久久久图片 | 精品一区二区三区91 | 国产成人在线视频免费观看 | 久久久久久久久91 | 国产精品日韩欧美一区二区三区 | www国产成人免费观看视频,深夜成人网 | 男女视频在线观看免费 | 欧美极品在线视频 | 欧美一级毛片久久99精品蜜桃 | 99成人免费视频 | 色一阁| 在线成人福利 | 国产亚洲网站 | 盗摄精品av一区二区三区 | 婷婷亚洲综合 | 国产精品色哟哟网站 | 亚洲国产精品久久人人爱 | 午夜看看 | 亚洲精品中文字幕中文字幕 | 精品欧美色视频网站在线观看 | 91精品国产综合久久精品 | 天天色官网 | 免费a网| 日韩中文字幕在线观看 | 亚洲欧美在线观看视频 | 99成人| 欧美日韩精品久久久免费观看 | 四虎影院免费在线 | 99精品国产一区二区三区 |