程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> 索引在ORACLE中的應用分析

索引在ORACLE中的應用分析

編輯:關於Oracle數據庫

  正確的索引可能使效率提高10000倍,而無效的索引可能是浪費了數據庫空間,甚至大大降低查詢性能。索引是提高數據查詢最有效的方法,也是最難全面掌握的技術,因為正確的索引可能使效率提高10000倍,而無效的索引可能是浪費了數據庫空間,甚至大大降低查詢性能。

  索引的管理成本

  1、存儲索引的磁盤空間

  2、執行數據修改操作(INSERT、UPDATE、DELETE)產生的索引維護

  3、在數據處理時回需額外的回退空間。

  實際數據修改測試:

  一個表有字段A、B、C,同時進行插入10000行記錄測試

  在沒有建索引時平均完成時間是2.9秒

  在對A字段建索引後平均完成時間是6.7秒

  在對A字段和B字段建索引後平均完成時間是10.3秒

  在對A字段、B字段和C字段都建索引後平均完成時間是11.7秒

  從以上測試結果可以明顯看出索引對數據修改產生的影響

  索引按存儲方法分類

  B*樹索引

  B*樹索引是最常用的索引,其存儲結構類似書的索引結構,有分支和葉兩種類型的存儲數據塊,分支塊相當於書的大目錄,葉塊相當於索引到的具體的書頁。一般索引及唯一約束索引都使用B*樹索引。

  位圖索引

  位圖索引儲存主要用來節省空間,減少ORACLE對數據塊的訪問,它采用位圖偏移方式來與表的行ID號對應,采用位圖索引一般是重復值太多的表字段。位圖索引在實際密集型OLTP(數據事務處理)中用得比較少,因為OLTP會對表進行大量的刪除、修改、新建操作,ORACLE每次進行操作都會對要操作的數據塊加鎖,所以多人操作很容易產生數據塊鎖等待甚至死鎖現象。在OLAP(數據分析處理)中應用位圖有優勢,因為OLAP中大部分是對數據庫的查詢操作,而且一般采用數據倉庫技術,所以大量數據采用位圖索引節省空間比較明顯。

  索引按功能分類

  唯一索引

  唯一索引有兩個作用,一個是數據約束,一個是數據索引,其中數據約束主要用來保證數據的完整性,唯一索引產生的索引記錄中每一條記錄都對應一個唯一的ROWID。

  • 首頁
  • 上一頁
  • 1
  • 2
  • 3
  • 4
  • 5
  • 下一頁
  • 尾頁
  • 共5頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved