oracle索引index_type,oracle index索引相关笔记
學習oracle的索引
1,索引的概念和分類
1,create index可以建立索引在如下幾種情況
1,表,分區表,索引組織表,或集表的一個或多個列
2,表或集表的一或多個標量類型的對象屬性上
1,經測在record類型不能用表類型
2,plsql表類型同上
3,nested 表的nested表列上
1,問題,其語法及注意點
4,官方文檔
2,索引的類型
1,普通索引,默認即oracle創建的B樹索引
2,位圖索引,以位圖方式存儲與鍵值關連的rowid
3,分區索引,分區表中的分區表的索引列的每個值存儲一條記錄或叫條目
4,基于函數的索引,基于函數表達式.
5,域索引,與某個特定應用有關的索引類型的一個實例
6,?Oracle Database Concepts for a discussion of indexes 可以查看關于索引的討論
問題
3,構建索引的前提條件
1,索引在自己的用戶下
2,對索引的表具有構建索引的對象權限
3,必須有create any index系統權限
4,為了創建域索引,還要具備在indextype上實行execute對象權限
且先要創建indextype
5,為了創建基于函數的索引,這些函數必須聲明為deterministic
如果這些函數屬于另一個用戶,必須對其有execute的對象權限
1,測試創建基于函數的索引
4,唯一索引unique
1,限制情況:
1,不能對位圖索引創建unique index
2,不能對域索引創建unique index
5,bitmap位圖索引
1,不是存儲每行的索引,而存儲每個不同鍵建立位圖索引
2,構建每個不同鍵值與rowid的關系
3,位圖中每個比特對應一個可能的rowid,如果配置了比特, 即對應rowid的記錄包含一個鍵值
4,這種表示適用于低強度的并發的應用,比如數據倉庫
5,在此索引上,會存儲索引列全為null在索引中,經測試null僅存儲一次
6,限制情況
1,不能在全局分區索引上創建位圖索引
2,不能在一個索引組織表上創建位圖索引,除非索引組織表建立一個與它映射的表
3,位圖索引不能同時指定unique和bitmap
4, 域索引也不能指定bitmap
5,位圖索引最多有30列
6,問題:?Oracle Database Concepts and
Oracle Database Performance Tuning Guide for more information about using bitmap indexes
6,臨時表上可以建立索引,但作用時間范圍同于臨時表,基于會話和基于事務;
不能在臨時表上創建域索引
不能指定物理屬性和并行度及日志和表空間
問題:要測試下臨時表上創建索引的情況
CREATE TABLE and Oracle Database Concepts for more information on temporary tables
7,索引列的限制情況
1,不能對用戶自定義類型,long,long raw,lob,ref建立索引
除非oracle支持在ref類型的列上建索引或者用scope子句定義的屬性
2,只有B樹即普通索引可以在加密列上建索引,且只能用于等值查詢
8,基于函數的索引的一些注意點
1,如果索引列為空,不會用基于函數的索引
create table t_unique(a int);--對其插入多條null記錄
create index t_unique_idx on t_unique(a,o);
--強制全表掃描成本是3
select /*+full(t_unique) */ * from t_unique where a is?? null
select * from t_unique where a is null
小結:有時強制直全表性能更差,全表的一致讀為8,而索引范圍掃描的一致性讀為2
2,where條件列順序與基于函數的列順序不同,也會使用基于函數的索引
3,如果基于函數的索引,其函數無效可刪除了。其索引會標記為disabled;
如果基于disabled的查詢就會失敗(前提是cbo選擇使用索引)
如果基于disabled的dml也會失敗,除非你把索引標記為unuable,把參數skip_unusable_indexes=true
2,索引測試,主要是不同索引的適用情況
3,索引與dml的關系
3,學習存儲過程中多個begin end代碼塊與異常精確定位
4,測試如果在沒有備份表的情況下,truncate table,可否用logminer恢復數據
C:\Users\123>
sqlldr userid=scott/system control=c:\insert_batch.ctl log=c:\sqlloader_imp.log
來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/9240380/viewspace-755436/,如需轉載,請注明出處,否則將追究法律責任。
總結
以上是生活随笔為你收集整理的oracle索引index_type,oracle index索引相关笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 索引问题梳理
- 下一篇: 外研社php,外研社高中英语单词