程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle索引的實際操作步驟

Oracle索引的實際操作步驟

編輯:Oracle數據庫基礎

其實創建Oracle索引是提高相關檢索的效率中最有效的方法,索引就是把表中的相關邏輯直接值映射到安全的RowID,而且能快速來定位相關數據的物理地址,可以大大加快數據庫的查詢速度。

一個建有合理索引的數據庫應用系統可能比一個沒有建立索引的數據庫應用系統效率高幾十倍,但並不是索引越多越好,在那些經常需要修改的數據列上建立索 引,將導致索引B*樹的不斷重組,造成系統性能的下降和存儲空間的浪費。

對於一個大型表建立的索引,有時並不能改善數據查詢速度,反而會影響整個數據庫的性能。這主要是和SGA的數據管理方式有關,Oracle在進行數據塊高速緩存管理時,索引數據比普通數據具有更高的駐留權限。

在進行空間競爭時, Oracle會先移出普通數據,對建有Oracle索引的大型表進行數據查詢時,索引數據可能會用完所有的數據塊緩存空間,Oracle不得不頻繁地進行磁盤讀寫來獲取數據,所以,在對一個大型表進行分區之後,可以根據相應的分區建立分區索引。

Oracle提供了另一種方法來提高查詢速度,就是聚簇(Cluster)。所謂聚簇,簡單地說就是把幾個表放在一起,按一定公共屬性混合存放。聚簇根據共同碼值將多個表的數據存儲在同一個Oracle塊中,這時檢索一組Oracle塊就同時得到兩個表的數據,這樣就可以減少需要存儲的Oracle塊,從而提高應用程序的性能。

對於邏輯結構的優化,還應將表數據和索引數據分開表空間存儲,分別使用獨立的表空間。因為如果將表數據和索引數據放在一起,表數據的I/O操作和索引的I/O操作將產生影響系統性能的I/O競爭,降低系統的響應效率。將表數據和Oracle索引數據存放在不同的表空間中,並在物理層面將這兩個表空間的數據文件放在不同的物理磁盤上,就可以避免這種競爭了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved