set linesize 666
set pagesize 5000
column index_name format a30
column table_name format a26
column num_rows format 999999999
column index_type format a24
column num_rows format 999999999
column status format a8
column clustering_factor format 999999999
column degree format a10
column blevel format 9
column distinct_keys format 9999999999
column leaf_blocks format 9999999
column last_analyzed format a10
column column_name format a25
column column_position format 9
column temporary format a2
column partitioned format a5
column partitioning_type format a7
column partition_count format 999
--.檢視索引情況
--1. 每張表對應有多少個索引,物理多大
select t2.table_name,t1.segment_name,sum(t1.bytes)/1024/1024
from user_segments t1,user_indexes t2
where t1.segment_name=t2.index_name
and t1.segment_type like '%index%'
and t2.table_name in ('t1',
't2')
group by t2.table_name,t1.segment_name
order by table_name;
--2. 結構情況(索引型別、高度、重複度、並行度、葉子高度、聚合因子、記錄數、狀態、最近分析時間。。。)
/*通過index_type可以方便的得知索引型別,普通索引(normal)?位圖索引(bitmap)?函式索引(function-based normal)?反向鍵索引normal/rev?
通過status欄位可知是否是分割槽索引(n/a)
通過status欄位可知普通索引是否失效(valid/unusable)
通過degree欄位可得是否有被設定為並行度的屬性(值大於1)
通過觀察last_analyzed字段值可知是否有正常收集,看有無值,或者是看時間是否很久以前的。
*/select t.table_name,
t.index_name,
t.num_rows,
t.index_type,
t.status,
t.clustering_factor,
t.blevel,
t.distinct_keys,
t.leaf_blocks,
t.uniqueness,
t.degree,
t.last_analyzed
from user_indexes t
where table_name in ('t1','t2');
--3. 檢視索引列資訊(在表的哪一列有索引,或者是在哪幾個列有聯合索引,普通表和分割槽表都一樣)
select t.table_name,t.index_name, t.column_name, t.column_position, t.descend
from user_ind_columns t
where table_name in ('t1',
't2')
order by table_name,index_name, column_position;
--4. 分割槽索引總的資訊(不會展示各分割槽上的各分割槽索引資訊,總的描述了分割槽索引的型別及分割槽總數)
select table_name,index_name, partitioning_type, partition_count
from user_part_indexes
where table_name in ('t1',
't2')
order by table_name,index_name;
----分割槽索引詳細資訊(每個分割槽的索引都展示,詳細說明了各分割槽索引的狀態、表空間位置、收集狀態情況....)
select index_name,
partition_name,
status,
num_rows,
blevel,
leaf_blocks,
last_analyzed,
tablespace_name
from user_ind_partitions
where index_name in
(select index_name
from user_indexes
where table_name in ('t1', 't2'));
Oracle建立索引 查詢索引
1 建立索引 create index 索引名 on 表名 列名 2 刪除索引 drop index 索引名 3 建立組合索引 create index 索引名 on 表名 列名1,列名2 檢視目標表中已新增的索引 在資料庫中查詢表名 select fromuser tableswheretable...
Oracle建立索引 查詢索引
第一種命令建立 1 建立索引 create index 索引名 on 表名 列名 2 刪除索引 drop index 索引名 3 建立組合索引 create index 索引名 on 表名 列名1,列名2 4.檢視目標表中已新增的索引 在資料庫中查詢表名 select from user table...
oracle 索引 之B TREE 索引
索引是oracle裡面的乙個非常重要的知識,oracle10g中索引可以分為以下 b tree indexes b tree cluster indexes hash cluster indexes reverse key indexes bitmap indexes bitmap join ind...