oracle索引技术 豆瓣,索引@oracle索引技术

索引

索引:其中记录的书rowid以及可以标示堆组织表的一行,聚簇表例外

独特值

覆盖索引

B树索引:索引组织表organizationindex;

唯一索引:uniqueindex

反向键索引:reverse;

键压缩索引:compress2;

降序索引:

------------------------------------------------------索引健压缩是指从串联(多列)索引取出冗余

select*fromuser_objectswhereobject_type='INDEX';

createtabletasselect*fromall_objectswhererownum<=50000;

createindext_idxont(owner,object_type,object_name);

select*frombig_table;

ANALYZEINDEXt_idxVALIDATESTRUCTURE;

createtableidx_statsasselect'noncompressed'what,  a.*fromindex_stats a;

select*fromidx_stats;

dropindext_idx;

createindext_idxont(owner,object_type,object_name)compress&1;----使用3个压缩列来创建这个索引

createindext_idxont(owner,object_type,object_name)compress&1;----使用2个压缩列来创建这个索引

createindext_idxont(owner,object_type,object_name)compress&1;----使用1个压缩列来创建这个索引

analyzeindext_idxvalidatestructure;

insertintoidx_statsselect'compress &1',a.*fromindex_stats a;

selectwhat,height,lf_blks 叶子节点块,br_blks ,btree_space可以得出索引大小,opt_cmpr_count可用的最佳压缩数,opt_cmpr_pctsave节省空间fromidx_stats ;

----------------------------------------------------------------反向健索引是指主要用于缓解忙索引右侧的缓冲区

select90101,dump(90101,16)fromdual;

begindbms_stats.gather_index_stats(user,'T',method_opt =>'for all indexed column');end;

select*fromuser_objectswhereobject_type='TABLE';

位图索引:相对较低的差异值bitmap(数据仓库环境中用的较多)

位图连接索引:表的外键列和另一个表的主键列连接时适用

主键约束:在主键列值上自动创建索引

唯一键约束:

1只读索引块

2读索引与数据块

3只读数据块

dbms_space.create_index_cost 估算索引大小

dbms_metadata.get_ddl 获取元数据

alterindexunusable/invisible

alterindexrebuild

dropindex

不可见 需要维护用来避免锁定问题或强制执行约束

不可用 优化器不用 维护不用

外键索引:主要是为了减少锁定问题

当select子句中的列都具有索引时 这种索引称为覆盖索引 只需读取索引块主键列

indexrangescan

indexfastfullscan---对count()很适用

dbblockgets+consistentgets=总的内存读

bufferispinnedcount第二次读取的块数是收集在缓冲区被钉住记数统计信息里面而不被收集进入统计信息中。

dbms_rowid.rowid_relative_fno(rowid)---rowid转换

外联 约束声明与列定义之间 用逗号 好处是可以为主键指定多列

constraintcust_pkprimarykey(cust_id);

独立索引删除与禁用 主键约束 先建unique index之后addconstraintprimarykey

listagg ?

organizationindex:  存储在b树索引结构中 在此结构中没有为每行存储物理rowid

star_transformation 星型转换

IOT(堆组织表)索引组织表:按主键的顺序存储的,所以必须有主键

----分区索引

索引的前导部分:在列清单中首先指定索引中的一个或多个列

ontablemytable(a,b,c)

前导部分为:a b abc而b c bc不是

前导部分只有少量的不同值而非前导部分有很多不同值,这个时候会选择索引跳跃扫描(逻辑子索引)

复合索引:确保where子句中使用的键组成复合索引的前导部分

global可以在分区表或则非分区表中使用

local只可以在分区表的基础上建立

表的分区在前导列:前缀索引

全局分区索引:必须有一个maxvalue必须是前缀分区索引

altertableemployees_12splitpartitionmanager_maxat(1000)into(partitionmanager_max,partitionmanager_1000);

altertablettruncate截断分区--全局unusable本地的usable

altertabletmove移动分区--全局和本地都是unusable,但是本地只是在这个分区内unusable

截断分区清除表分区内的所有数据

本地分区索引:不影响底层的索引分区

非分区索引/全局index:全部变成unusable

添加虚拟分区实现分区拆分 :虚拟一个高端值 然后在高端值后面添加一个maxvalue删除某个分区对本地索引分区没有任何影响usable

altertabletmergepartitionp1995 ,pmaxintopartitionpmaxupdateindexs;--更新之后的status会依然是usable

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值