索引的建立一般規則
單錶索引不超過6個。
每個索引不超過3個字段。
索引匹配時,可以包含關係,但指令碼中的字段在索引的前面的連續欄位時,正常索引,否則會變成skip索引(索引效能下降70%),如sql條件裡有c1,c3欄位,如果索引是c1, c2,c3,則是 skip index,如果是c1,c3,c2,則是正常索引。
唯一性索引有可能會影響到查詢效能,主要是統計資訊處理導致指令碼不去用更優化的索引,而是用唯一索引。可以考慮用採隱藏索引技術。
指令碼實現的時候,索引可選擇性高的條件放在條件語句的前面,可以提高指令碼效能。
索引單獨表空間,儲存在一起時,效果不大,需要在不同的儲存裝置上。
函式索引(to_date)並不能提公升效率,要從索引使用上分析。
可以根據歷史統計資訊查詢索引使用的次數,並分析索引合理性,可以監控索引使用情況(會影響效能)。
查索引選擇性:
10. 統計資訊收集與索引重建統計資訊自動收集,資料量變化超過 20%自動,定時收集。
--收集單錶的統計資訊
call dbms_stats.gather_table_stats(user, '表名');
--收集整個schema的統計資訊
call dbms_stats.gather_schema_stats(user);
--普通索引重建
11. 如何判斷索引是否使用select 'alter index ' || index_name || ' rebuilding on line
;', t.* from user_indexes t
where t.temporary = 'n' and
index_type = 'normal' and
t.partitioned = 'no';
12. 隱藏索引select *
from dba_indexes
where (owner, index_name) not in
(select object_owner, object_name
from dba_hist_sql_plan) ;
alter index 索引名 invisible / visible;
13. 表的高水位
分配的表空間
使用表空間select segment_name, segment_type, blocks from dba_segments
where segment_name=』ttrd_accounting_secu_obj_his』;
當插入了資料以後,高水位線就會**,但是這裡也有乙個特性,就是如果你採用 delete 語句刪除資料的話,資料雖然被刪除了,但是高水位線卻沒有降低。select 語句掃瞄的資料塊增加。 降低方法:select table_name,num_rows,blocks,empty_blocks
from user_tables
where table_name=' ttrd_accounting_secu_obj_his '
truncate 執行表重建指令 alter table table_name move;
alter table table_name shrink space;
重建表 匯出/匯入表
alter table table_name deallocate unused;
Oracle資料庫索引
標籤 資料庫 oracle 索引index 2013 06 14 16 54 4148人閱讀收藏 舉報 database 6 目錄 索引基本概念 索引的作用 索引的架構 oracle索引的型別 1 基於函式的索引 2 位圖索引 oracle索引的實現 索引是用於加速資料訪問的資料物件,合理的使用索引...
Oracle資料庫 索引
索引通過指標的形式提高資料查詢的速度。如果乙個資料量比較大的資料庫經常被查詢而插入刪除的次數較少,則應該建立索引,相反,小表或經常被插入或修改,則不建議建立索引。1.建立索引 create index emp phone number ix on employees phone number 2.建...
Oracle資料庫 索引
索引是定義在儲存表基礎之上,有助於無需檢查所有記錄而快速定位所需記錄的一種輔助儲存結構,由一系列儲存在磁碟上的索引項 index entries 組成,每個索引項又由兩部分構成 索引字段 由table中某些列 通常是一列 中的值串接而成,索引中通常儲存了索引欄位的每乙個值 也有例外 索引字段類似於詞...