索引@oracle索引技術
索引
索引:其中記錄的書rowid以及可以標示堆組織表的一行,聚簇表例外
獨特值
覆蓋索引
B樹索引:索引組織表 organization index;
唯一索引:unique index
反向鍵索引:reverse;
鍵壓縮索引:compress 2;
降序索引:
------------------------------------------------------索引健壓縮是指從串聯(多列)索引取出冗餘
select * from user_objects where object_type='INDEX';
create table t as select * from all_objects where rownum<=50000;
create index t_idx on t(owner,object_type,object_name);
select * from big_table;
ANALYZE INDEX t_idx VALIDATE STRUCTURE;
create table idx_stats as select 'noncompressed' what, a.* from index_stats a;
select * from idx_stats;
drop index t_idx;
create index t_idx on t(owner,object_type,object_name) compress &1;----使用3個壓縮列來建立這個索引
create index t_idx on t(owner,object_type,object_name) compress &1;----使用2個壓縮列來建立這個索引
create index t_idx on t(owner,object_type,object_name) compress &1;----使用1個壓縮列來建立這個索引
analyze index t_idx validate structure;
insert into idx_stats select 'compress &1',a.* from index_stats a;
select what,height,lf_blks 葉子節點塊,br_blks ,btree_space 可以得出索引大小,opt_cmpr_count 可用的最佳壓縮數,opt_cmpr_pctsave 節省空間 from idx_stats ;
----------------------------------------------------------------反向健索引是指主要用於緩解忙索引右側的緩衝區
select 90101 ,dump(90101,16) from dual;
begin dbms_stats.gather_index_stats(user,'T',method_opt => 'for all indexed column');end;
select * from user_objects where object_type='TABLE';
點陣圖索引:相對較低的差異值 bitmap(資料倉儲環境中用的較多)
點陣圖連線索引:表的外來鍵列和另一個表的主鍵列連線時適用
主鍵約束:在主鍵列值上自動建立索引
唯一鍵約束:
1 只讀索引塊
2 讀索引與資料塊
3 只讀資料塊
dbms_space.create_index_cost 估算索引大小
dbms_metadata.get_ddl 獲取後設資料
alter index unusable/invisible
alter index rebuild
drop index
不可見 需要維護用來避免鎖定問題或強制執行約束
不可用 最佳化器不用 維護不用
外來鍵索引:主要是為了減少鎖定問題
當select子句中的列都具有索引時 這種索引稱為覆蓋索引 只需讀取索引塊主鍵列
index range scan
index fast full scan ---對count()很適用
db block gets+consistent gets=總的記憶體讀
buffer is pinned count 第二次讀取的塊數是收集在緩衝區被釘住記數統計資訊裡面而不被收集進入統計資訊中。
dbms_rowid.rowid_relative_fno(rowid)---rowid轉換
外聯 約束宣告與列定義之間 用逗號 好處是可以為主鍵指定多列
constraint cust_pk primary key(cust_id);
獨立索引刪除與禁用 主鍵約束 先建unique index之後 add constraint primary key
listagg ?
organization index: 儲存在b樹索引結構中 在此結構中沒有為每行儲存物理rowid
star_transformation 星型轉換
IOT(堆組織表) 索引組織表:按主鍵的順序儲存的,所以必須有主鍵
----分割槽索引
索引的前導部分:在列清單中首先指定索引中的一個或多個列
on table mytable(a,b,c)
前導部分為:a b abc 而b c bc不是
前導部分只有少量的不同值而非前導部分有很多不同值,這個時候會選擇索引跳躍掃描(邏輯子索引)
複合索引:確保where 子句中使用的鍵組成複合索引的前導部分
global 可以在分割槽表或則非分割槽表中使用
local 只可以在分割槽表的基礎上建立
表的分割槽在前導列:字首索引
全域性分割槽索引:必須有一個maxvalue 必須是字首分割槽索引
alter table employees_12 split partition manager_max at(1000) into (partition manager_max,partition manager_1000);
alter table t truncate 截斷分割槽--全域性unusable 本地的usable
alter table t move 移動分割槽--全域性和本地都是unusable,但是本地只是在這個分割槽內unusable
截斷分割槽清除表分割槽內的所有資料
本地分割槽索引:不影響底層的索引分割槽
非分割槽索引/全域性index :全部變成unusable
新增虛擬分割槽實現分割槽拆分 :虛擬一個高階值 然後在高階值後面新增一個maxvalue 刪除某個分割槽對本地索引分割槽沒有任何影響 usable
alter table t merge partition p1995 ,pmax into partition pmax update indexs;--更新之後的status會依然是usable
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30018455/viewspace-1427788/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle的分割槽索引技術Oracle索引
- 索引@oracel索引技術之索引最佳化索引
- Oracle Database 11g索引技術OracleDatabase索引
- 【INDEX】Oracle分割槽索引技術詳解IndexOracle索引
- SAP索引重組技術索引
- 【INDEX】Oracle19c 自動索引技術初探IndexOracle索引
- 【Oracle索引】-索引基本概念Oracle索引
- Oracle索引——點陣圖索引Oracle索引
- oracle 索引分析及索引重建Oracle索引
- Oracle索引梳理系列(六)- Oracle索引種類之函式索引Oracle索引函式
- Oracle 索引Oracle索引
- .NET Core技術研究系列-索引篇索引
- Elasticsearch核心技術(四):索引原理分析Elasticsearch索引
- Oracle全域性索引和本地索引Oracle索引
- oracle索引詳解 分割槽索引Oracle索引
- PostgreSQL技術內幕(七)索引掃描SQL索引
- apache kafka技術分享系列(目錄索引)ApacheKafka索引
- oracle 索引使用及索引失效總結Oracle索引
- oracle索引操作Oracle索引
- oracle重建索引Oracle索引
- ORACLE索引概述Oracle索引
- Oracle索引原理Oracle索引
- Oracle——03索引Oracle索引
- oracle 索引 管理Oracle索引
- oracle的索引Oracle索引
- 【索引】Oracle之不可見索引和虛擬索引的比對索引Oracle
- [轉]Oracle分割槽索引--本地索引和全域性索引比較Oracle索引
- Oracle分割槽索引--本地索引和全域性索引比較(轉)Oracle索引
- 【索引】oracle查詢使用索引和不使用索引的比較索引Oracle
- Oracle表與索引的分析及索引重建Oracle索引
- 【技術總結】從Hash索引到LSM樹索引
- 產品級搜尋技術-全文字索引索引
- oracle重建索引(一)Oracle索引
- oracle重建索引(三)Oracle索引
- oracle重建索引(二)Oracle索引
- Oracle OCP(25):索引Oracle索引
- Oracle虛擬索引Oracle索引
- Oracle:全文索引Oracle索引