Oracle数据库

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统 。ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。

Oracle 甲骨文中国 | 云应用和云平台https://www.oracle.com/cn/index.html

数据库索引

B树索引

B*树索引的存储结构类似书的索引结构,有分支和叶两种类型的存储数据块,分支块相当于书的大目录,叶块相当于索引到的具体的书页。Oracle用B*树机制存储索引条目,以保证用最短路径访问键值。默认情况下大多使用B*树索引,该索引就是通常所见的唯一索引、逆序索引

位图索引

位图索引存储主要用于节省空间,减少oracle对数据块的访问。它采用位图偏移方式来与表的行ID号对应,采用位图索引一般是重复值太多的表字段

索引创建

创建索引

create index  idx_emp1_ename on emp1(ename);

创建唯一索引

create unique index idx_uq_emp1_empno on emp1(empno) tablespace mypl;

创建位图索引

create bitmap index idx_bm_emp1_deptno on emp1(deptno);

创建反向索引

create index idx_reverse_emp1_ename on emp1(empno);

创建函数索引

create index idx_funs_emp1_ename on emp1 (upper(ename));

重建索引更换索引所在表空间

alter index idx_reverse_emp1_ename rebuild;

alter index idx_reverse_emp1_ename rebuild tablespace mypl;

删除索引

drop index idx_reverse_emp1_ename;

查看用户有哪些索引

select INDEX_NAME,INDEX_TYPE,TABLE_OWNER,TABLE_NAME,TABLE_TYPE from user_indexes;

查看索引所在表空间

select index_name,tablespace_name from dba_indexes;

分析索引后查看索引统计信息

analyze index idx_funs_emp1_ename validate structure;

select height,(DEL_LF_ROWS_LEN/ LF_ROWS_LEN)*100,blocks,BTREE_SPACE,USED_SPACE from index_stats;

如果(DEL_LF_ROWS_LEN/ LF_ROWS_LEN)*100的值大于20 或 heighr 大于4 需要考虑重建索引

(index_stats存放索引的统计信息; DEL_LF_ROWS表示删除行数 LF_ROWS表示总行数,height 表示二叉树从根到叶块的层次)

你可能感兴趣的:(数据库,oracle,数据库,dba)