Oracle索引的優(yōu)化設計
通過合理使用和管理Oracle索引,可以加快數(shù)據(jù)庫的查詢效率,下面就為您詳細介紹Oracle索引的優(yōu)化設計,希望能夠對您有所啟迪。
1、管理組織索引
Oracle索引可以大大加快數(shù)據(jù)庫的查詢速度,Oracle索引把表中的邏輯值映射到安全的RowID,因此索引能進行快速定位數(shù)據(jù)的物理地址。但是有些DBA發(fā)現(xiàn),對一個大型表建立的索引,并不能改善數(shù)據(jù)查詢速度,反而會影響整個數(shù)據(jù)庫的性能。
這主要是和SGA的數(shù)據(jù)管理方式有關。ORACLE在進行數(shù)據(jù)塊高速緩存管理時,索引數(shù)據(jù)比普通數(shù)據(jù)具有更高的駐留權限,在進行空間競爭時,ORACLE會先移出普通數(shù)據(jù)。對一個建有索引的大型表的查詢時,索引數(shù)據(jù)可能會用完所有的數(shù) 據(jù)塊緩存空間,ORACLE不得不頻繁地進行磁盤讀寫來獲取數(shù)據(jù),因此在對一個大型表進行分區(qū)之后,可以根據(jù)相應的分區(qū)建立分區(qū)索引。
如果對這樣大型表的數(shù)據(jù)查詢比較頻繁,或者干脆不建索引。另外,DBA創(chuàng)建索引時,應盡量保證該索引最可能地被用于where子句中,如果對查詢只簡單地制定一個索引,并不一定會加快速度,因為索引必須指定一個適合所需的訪問路徑。
2、聚簇的使用
Oracle提供了另一種方法來提高查詢速度,就是聚簇(Cluster)。所謂聚簇,簡單地說就是把幾個表放在一起,按一定公共屬性混合存放。聚簇根 據(jù)共同碼值將多個表的數(shù)據(jù)存儲在同一個Oracle塊中,這時檢索一組Oracle塊就同時得到兩個表的數(shù)據(jù),這樣就可以減少需要存儲的Oracle塊, 從而提高應用程序的性能。
3、優(yōu)化設置的索引,就必須充分利用才能加快數(shù)據(jù)庫訪問速度。ORACLE要使用一個索引, 有一些最基本的條件:
1)、where子名中的這個字段,必須是復合索引的***個字段;
2)、where子名中的這個字段,不應該參與任何形式的計算。
【編輯推薦】