发布时间:2024-03-26 19:01
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 表示二叉树从根到叶块的层次)