亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

Oracle數據庫索引的維護

2024-08-29 13:57:25
字體:
來源:轉載
供稿:網友
正在看的ORACLE教程是:Oracle數據庫索引的維護。

 本文只討論Oracle中最常見的索引,即是B-tree索引。本文中涉及的數據庫版本是Oracle8i。

  一. 查看系統表中的用戶索引

  在Oracle中,SYSTEM表是安裝數據庫時自動建立的,它包含數據庫的全部數據字典,存儲過程、包、函數和觸發器的定義以及系統回滾段。

  一般來說,應該盡量避免在SYSTEM表中存儲非SYSTEM用戶的對象。因為這樣會帶來數據庫維護和管理的很多問題。一旦SYSTEM表損壞了,只能重新生成數據庫。我們可以用下面的語句來檢查在SYSTEM表內有沒有其他用戶的索引存在。


  二. 索引的存儲情況檢查

  Oracle為數據庫中的所有數據分配邏輯結構空間。數據庫空間的單位是數據塊(block)、范圍(extent)和段(segment)。

  Oracle數據塊(block)是Oracle使用和分配的最小存儲單位。它是由數據庫建立時設置的DB_BLOCK_SIZE決定的。一旦數據庫生成了,數據塊的大小不能改變。要想改變只能重新建立數據庫。(在Oracle9i中有一些不同,不過這不在本文討論的范圍內。)

  Extent是由一組連續的block組成的。一個或多個extent組成一個segment。當一個segment中的所有空間被用完時,Oracle為它分配一個新的extent。
  
  Segment是由一個或多個extent組成的。它包含某表空間中特定邏輯存儲結構的所有數據。一個段中的extent可以是不連續的,甚至可以在不同的數據文件中。

  一個object只能對應于一個邏輯存儲的segment,我們通過查看該segment中的extent,可以看出相應object的存儲情況。

  (1)查看索引段中extent的數量:


 ?。?)查看表空間內的索引的擴展情況:

三. 索引的選擇性

  索引的選擇性是指索引列中不同值的數目與表中記錄數的比。如果一個表中有2000條記錄,表索引列有1980個不同的值,那么這個索引的選擇性就是1980/2000=0.99。

  一個索引的選擇性越接近于1,這個索引的效率就越高。

  如果是使用基于cost的最優化,優化器不應該使用選擇性不好的索引。如果是使用基于rule的最優化,優化器在確定執行路徑時不會考慮索引的選擇性(除非是唯一性索引),并且不得不手工優化查詢以避免使用非選擇性的索引。

  確定索引的選擇性,可以有兩種方法:手工測量和自動測量。

 ?。?)手工測量索引的選擇性

  如果要根據一個表的兩列創建兩列并置索引,可以用以下方法測量索引的選擇性:

  列的選擇性=不同值的數目/行的總數 /* 越接近1越好 */


  如果我們知道其中一列索引的選擇性(例如其中一列是主鍵),那么我們就可以知道另一列索引的選擇性。

  手工方法的優點是在創建索引前就能評估索引的選擇性。

  (2)自動測量索引的選擇性

  如果分析一個表,也會自動分析所有表的索引。

  第一,為了確定一個表的確定性,就要分析表。


  第二,確定索引里不同關鍵字的數目:


  第三,確定表中行的總數:


  第四,索引的選擇性=索引里不同關鍵字的數目/表中行的總數:


  第五,可以查詢USER_TAB_COLUMNS以了解每個列的選擇性。

  表中所有行在該列的不同值的數目:


  列的選擇性=NUM_DISTINCT/表中所有行的總數,查詢USER_TAB_COLUMNS有助測量每個列的選擇性,但它并不能精確地測量列的并置組合的選擇性。要想測量一組列的選擇性,需要采用手工方法或者根據這組列創建一個索引并重新分析表。

  四. 確定索引的實際碎片

  隨著數據庫的使用,不可避免地對基本表進行插入,更新和刪除,這樣導致葉子行在索引中被刪除,使該索引產生碎片。插入刪除越頻繁的表,索引碎片的程度也越高。碎片的產生使訪問和使用該索引的I/O成本增加。碎片較高的索引必須重建以保持最佳性能。

 ?。?)利用驗證索引命令對索引進行驗證。

  這將有價值的索引信息填入index_stats表。


  (2)查詢index_stats表以確定索引中刪除的、未填滿的葉子行的百分比。


  (3)如果索引的葉子行的碎片超過10%,考慮對索引進行重建。


 ?。?)如果出于空間或其他考慮,不能重建索引,可以整理索引。


 ?。?)清除分析信息

[NextPage]五. 重建索引

 ?。?)檢查需要重建的索引。

  根據以下幾方面進行檢查,確定需要重建的索引。

  第一,查看SYSTEM表空間中的用戶索引。

  為了避免數據字典的碎片出現,要盡量避免在SYSTEM表空間出現用戶的表和索引。


  第二,確保用戶的表和索引不在同一表空間內。

  表和索引對象的第一個規則是把表和索引分離。把表和相應的索引建立在不同的表空間中,最好在不同的磁盤上。這樣可以避免在數據管理和查詢時出現的許多I/O沖突。


  第三,查看數據表空間里有哪些索引

  用戶的默認表空間應該不是SYSTEM表空間,而是數據表空間。在建立索引時,如果不指定相應的索引表空間名,那么,該索引就會建立在數據表空間中。這是程序員經常忽略的一個問題。應該在建索引時,明確的指明相應的索引表空間。


  第四,查看哪個索引被擴展了超過10次

  隨著表記錄的增加,相應的索引也要增加。如果一個索引的next extent值設置不合理(太?。?,索引段的擴展變得很頻繁。索引的extent太多,檢索時的速度和效率就會降低。


 ?。?)找出需要重建的索引后,需要確定索引的大小,以設置合理的索引存儲參數。


 ?。?)確定索引表空間還有足夠的剩余空間。

  確定要把索引重建到哪個索引表空間中。要保證相應的索引表空間有足夠的剩余空間。


  (4)重建索引。

  重建索引時要注意以下幾點:

  a.如果不指定tablespace名,索引將建在用戶的默認表空間。

  b.如果不指定nologging,將會寫日志,導致速度變慢。由于索引的重建沒有恢復的必要,所以,可以不寫日志。

  c.如果出現資源忙,表明有進程正在使用該索引,等待一會再提交。


 ?。?)檢查索引。

  對重建好的索引進行檢查。


 ?。?)根據索引進行查詢,檢查索引是否有效

  使用相應的where條件進行查詢,確保使用該索引??纯词褂盟饕蟮男Ч绾?。


  然后,根據相應的索引項進行查詢。


 ?。?)找出有碎片的表空間,并收集其碎片。

  重建索引后,原有的索引被刪除,這樣會造成表空間的碎片。


  整理表空間的碎片。



上一頁    

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕久精品免费视频| 国产成人精品综合久久久| 国产精品日韩久久久久| 91国内揄拍国内精品对白| 国产中文字幕亚洲| 亚洲午夜国产成人av电影男同| 国产日韩欧美成人| 欧美精品免费在线观看| 欧美日韩在线观看视频| 日韩精品视频免费专区在线播放| 国产精品入口免费视频一| 亚洲人成网7777777国产| 国产不卡视频在线| 日韩国产高清污视频在线观看| 一区二区三区久久精品| 国产精品入口免费视| 日本伊人精品一区二区三区介绍| 欧美日韩亚洲国产一区| 91免费精品国偷自产在线| 国产成人综合亚洲| 欧美极品在线视频| 91黑丝在线观看| 一区二区三区高清国产| 日韩国产精品一区| 97在线免费视频| 欧美在线国产精品| 92裸体在线视频网站| 国产欧美日韩视频| 国产精品网站视频| 亚洲片国产一区一级在线观看| 日韩免费精品视频| www.欧美精品一二三区| 亚洲大胆人体av| 欧美男插女视频| 在线激情影院一区| 88国产精品欧美一区二区三区| 国产视频在线一区二区| 国产精品成人一区二区三区吃奶| 中文字幕欧美精品日韩中文字幕| 中文字幕日本精品| 久久国产精品影视| 日韩av电影在线免费播放| 国产在线精品成人一区二区三区| 91中文字幕在线| 色小说视频一区| 欧美福利视频在线观看| 亚洲欧美日韩中文在线制服| 欧美高清在线播放| 美女福利精品视频| 国产成人啪精品视频免费网| 最新69国产成人精品视频免费| 成人444kkkk在线观看| 国产成+人+综合+亚洲欧洲| 在线视频精品一| 国产精品久久久久av免费| 欧美日韩ab片| 久久精品国产一区| 国产精品99导航| 亚洲视频在线播放| 在线播放日韩专区| 欧美另类精品xxxx孕妇| 视频一区视频二区国产精品| 最近2019中文字幕在线高清| 中文字幕一精品亚洲无线一区| 亚洲成av人片在线观看香蕉| 久久亚洲一区二区三区四区五区高| 国产美女被下药99| 美女999久久久精品视频| 欧美中文在线视频| 国产乱人伦真实精品视频| 91热福利电影| 国产精品入口尤物| 久久国产精品99国产精| 粗暴蹂躏中文一区二区三区| 丝袜一区二区三区| 欧美三级欧美成人高清www| 亚洲精品二三区| 国产精品一区二区三区在线播放| 日韩av大片免费看| 姬川优奈aav一区二区| 国产成人精品久久亚洲高清不卡| 亚洲奶大毛多的老太婆| 91高清视频在线免费观看| 国产精品尤物福利片在线观看| 不用播放器成人网| 色综合色综合久久综合频道88| 中文字幕欧美日韩精品| 欧美中文字幕在线| 欧美激情在线视频二区| 国产精品一区二区三| 国产精品久久久91| 欧美精品亚州精品| 亚洲人a成www在线影院| 成人性生交大片免费观看嘿嘿视频| 欧美精品日韩三级| 欧美成人小视频| 国产一区视频在线| 中文字幕精品—区二区| 欧美在线性爱视频| 国产亚洲欧美一区| 一级做a爰片久久毛片美女图片| 久久这里有精品视频| 国产精品视频一区二区高潮| 98午夜经典影视| 欧美成人在线影院| 亚洲高清免费观看高清完整版| 性欧美激情精品| 人人爽久久涩噜噜噜网站| 久久久久日韩精品久久久男男| 亚洲人成电影网站色| 成人97在线观看视频| 国产日韩欧美视频在线| 国产日韩一区在线| 日韩av免费在线| 亚洲伊人久久大香线蕉av| 亚洲天堂免费视频| 国产精品视频久久久| 国产成人精品最新| 国产精品1234| 亚洲一区免费网站| 国内精品在线一区| 亚洲欧美在线一区二区| 911国产网站尤物在线观看| 欧美大学生性色视频| 亲子乱一区二区三区电影| 国产精品视频免费在线观看| 久久视频在线观看免费| 最近日韩中文字幕中文| 伊人久久男人天堂| 欧美成人精品在线观看| 中文字幕精品视频| 国产欧美精品在线播放| 91免费高清视频| 久久影院中文字幕| 8x拔播拔播x8国产精品| 日韩亚洲综合在线| 国产精品夫妻激情| 日本国产欧美一区二区三区| 成人黄色免费网站在线观看| 欧美激情在线播放| 亚洲欧洲日产国产网站| 久久影视免费观看| 91av视频在线播放| 国产在线日韩在线| 一区二区三区国产视频| 啪一啪鲁一鲁2019在线视频| 久久久久久综合网天天| 2019中文字幕全在线观看| 日韩中文字幕网| 欧美自拍大量在线观看| 成人黄色影片在线| 亚洲精品中文字| 色综合久久中文字幕综合网小说| 欧美精品www在线观看| 国产精品网红直播| 精品欧美一区二区三区| 国产精品爽黄69天堂a| 成人午夜激情网| 精品国产网站地址| 欧美亚洲免费电影| 日韩欧美成人免费视频| 国内精品小视频| 久久久久久美女| 日韩精品亚洲精品|