Oracle資料庫索引管理規範
根據官方文件和平時自己經驗,總結一下oracle資料庫索引管理規範,可能不是很全,下次再補充一些
1 索引建立規範和適用情況
1. 對於經常查詢的大表,如果返回資料少於15%,需要建立索引(可根據欄位和全表描速度做調整,全表掃描越快,這個值越低)
2. 表的主鍵和唯一健會自動建立索引,外來鍵一般情況下考慮建立索引
· 外來鍵不建立索引的後果(死鎖);
· 對於外來鍵,業務表一般需要建立索引(頻繁發生DML操作的表);
· 對於程式碼表一般可以不建立建立索引(資料基本不會發生改變的表);
3. 在經常使用的關聯查詢的連線欄位上面建立索引,以提高效能。
4. 經常查詢且部分查詢值選擇性很強需要建立索引
5. 列中包含很多空值,但是查詢條件都是需要有值的,需要建立索引
6. 複合索引的建立
- 正確選擇複合索引中的第一個欄位,一般是選擇性較好的且在where 子句中常出現的欄位上;
- 複合索引的幾個欄位是否經常同時以and方式出現在where子句中?單欄位查詢是否極少甚至沒有?如果是,則可以建立複合索引;否則考慮單欄位索引;
- 如果複合索引中包含的欄位經常單獨出現在where子句中,則分解為多個單段索引,同時考慮刪除複合索引;
- 如果複合索引所包含的欄位超過3 個,那麼仔細考慮其必要性,考慮減少複合的欄位;
2 不適合索引的情況
1. 包含很多空值,但是經常查詢的語句中返回條件包含了空值的
2. Long和raw欄位不能建立索引
3. 表非常小,如少於500-1000行資料,不需要建立索引
3 索引維護
1. 定期檢查不使用的索引,對於不使用的索引應該進行刪除,分析沒有效果的索引,定期進行整理
2. 定期檢查索引的碎片情況,對於碎片太多的索引進行重建
參考文件:http://docs.oracle.com/cd/E11882_01/server.112/e25494/indexes002.htm
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21605631/viewspace-762530/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 資料庫管理指令碼命名規範Oracle資料庫指令碼
- Oracle 資料庫管理指令碼命名規範(轉)Oracle資料庫指令碼
- 資料庫運維管理規範資料庫運維
- mysql資料庫規範MySql資料庫
- 資料庫命令規範資料庫
- MySQL資料庫規範 (設計規範+開發規範+操作規範)MySql資料庫
- MySQL 規範 (資料庫表設計規範)MySql資料庫
- 資料庫規範之SQL規範寫法資料庫SQL
- 必看的資料庫規範資料庫
- 1.2.4 資料庫規範化資料庫
- 資料庫設計規範資料庫
- MySQL建庫建表索引規範MySql索引
- 企業資料庫安全管理規範 | 運維進階資料庫運維
- [資料庫]【MySQL】MySQL資料庫規範總結資料庫MySql
- 必看的資料庫使用規範資料庫
- MySQL 社群規範 | 資料庫篇MySql資料庫
- MySQL資料庫設計規範MySql資料庫
- 【MySQL】資料庫開發規範MySql資料庫
- SQL Server資料庫命名規範SQLServer資料庫
- oracle資料庫叢集新增表空間操作規範Oracle資料庫
- 資料庫表規範化問題資料庫
- 資料庫表欄位命名規範資料庫
- MySQL 資料庫規範--設計篇MySql資料庫
- MongoDB資料庫的設計規範MongoDB資料庫
- MySQL之規範資料庫設計MySql資料庫
- mysql之 資料庫開發規範MySql資料庫
- SQL Server 資料庫設計規範SQLServer資料庫
- 資料庫物件命名規範問題....資料庫物件
- 資料庫建表及索引規約資料庫索引
- Oracle資料庫管理Oracle資料庫
- 【乾貨】MySQL資料庫開發規範MySql資料庫
- Postgresql 31條資料庫開發規範SQL資料庫
- 大話資料庫程式設計規範資料庫程式設計
- 八、資料庫的歸約,三大正規化(規範資料庫設計)資料庫
- Oracle資料庫索引使用及索引失效總結 轉Oracle資料庫索引
- Oracle資料庫開發——瞭解索引Oracle資料庫索引
- MySQL資料庫設計與開發規範MySql資料庫
- 理解資料庫規範化的意義ZI資料庫