- 浏览: 85847 次
- 性别:
- 来自: 北京
文章分类
64.索引分类:
存储方式:B*-树索引,反向索引和位图索引
索引列方式:单列索引和复合索引
索引列值唯一性方式:唯一索引和非唯一索引,索引列都允许null
65.索引管理的指导方针
装载数据后建立索引
索引正确的表和列
限制表的索引个数
删除不再需要的索引
指定索引块空间使用参数
指定索引所在的表空间
考虑并行建立索引
使用NOLOGGING选项建立索引
当在大表上建立索引时,使用NOLOGGING选项可以最小化重做记录。
66.B*-树索引是以B*-树结构组织并存放索引数据的,它是最常用的索引类型,默认情况下索引数据是以升序方式排列的。
根块(一个):索引顶级块,它包含指向下一级节点(分支块或叶块)的信息
分支块:它包含指向下一级节点(分支块或叶块)的信息
叶块:它包含索引入口数据,索引入口包含索引列值和受限ROWID
使用B*-数索引
从Oracle10g开始,Oracle会自动搜集表及其索引的统计信息。建立B*-树索引后,如果在WHERE子句中引用索引列,Oracle会根据统计
信息确定是否使用B*-树索引定位表行数据
create index ind_ename on emp(ename) pctfree 30 tablespace user02;
set autotrace on explain
select * from emp where ename=’SCOTT’;
位图索引以位值标识索引行数据,主要用在DSS(Decision Support System)系统中执行数据统计、数据汇总等操作。B*-树索引建立在重复值很少的列上,而位图索引建立在重复值很多、不同值相对固定的列上。
create bitmap index idx_gender on customers(cust_gender);
对于B*-树索引来说,使用OR谓词效率很低,使用位图索引时,因为可以执行位图合并,索引使用AND、OR或NOT谓词的效率很高。
当在where子句中引用位图列,并使用AND、OR或NOT谓词时,Oracle会执行位图合并操作
select count(*) from customers where cust_gender = 'F' or cust_gender = 'M';
反向索引是索引列值按照相反顺序存放的索引
B*-树索引既使用于范围查询,也适用于等值查询,而反向索引只适用于等值查询
create index customers_pk on customers(cust_id) reverse;
alter index customers_pk rebuild reverse;
alter index department_dname rebuild;
合并索引
alter index department_dname coalesce;
drop index department_dname;
select index_name,index_type,uniqueness from dba_indexes
where owner=’SCOTT’ and table_name=’EMP’;
函数索引:建立函数索引要求用户必须具有QUERY REWRITE系统权限
create index idx_fname on customers(lower(cust_first_name));
唯一索引列可以为null
在表A上建立基于(cola,colb)的组合索引,以下select语句可以使用该索引
select * from a where cola=1 and colb=5;
select * from a where cola=1;
select * from a where colb=5 and cola=1;
B*-树索引和函数索引可以用于范围查询
67.约束分类
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
约束状态
ENABLE VALIDATE(默认状态):要求新、旧数据必须同时满足约束规则
ENABLE NOVALIDATE:已存在数据可以不满足约束规则,但新数据必须满足约束规则
DISABLE VALIDATE:不允许在表上执行任何DML操作
DISABLE NOVALIDATE:新、旧数据都可以不满足约束规则
修正约束数据
使用ENABLE VALIDATE选项激活约束时,如果已存在数据不满足约束规则,则会提示错误信息,并且激活约束会失败。
此时必须对已存在数据进行修正,以确保这些数据全部满足约束规则。
建立EXCEPTIONS表
@ORACLE_HOME/rdbms/admin/utlexcpt.sql
激活约束(带有EXCEPTIONS选项)
Oracle自动将不满足约束规则的行位置(ROWID)插入到表EXCEPTIONS中
alter table employee enable validate constraint check_job exceptions into exceptions;
确定不满足约束规则的行
select job,rowid from employee where rowid in (select row_id from exceptions) for update;
修正数据,激活约束
发表评论
-
undo与事务剖析
2015-03-09 22:13 01、首先修改几条记录 ... -
Oracle限制IP访问功能-黑白名单
2015-03-09 21:03 1842由于业务需要,需要使用白名单限制用户登录数据库的地址,决定使 ... -
Oracle10g系统管理20
2011-10-09 08:50 66185.DBVERIFY用于验证数据文件、表段或索引段是否存在损 ... -
Oracle10g系统管理19
2011-10-09 08:49 75481.LogMiner工具分析DML和DDL操作确定数据库的逻 ... -
Oracle10g系统管理18
2011-10-09 08:49 90476.EXP和IMP是客户端工具程序,既可以在客户端使用,也可 ... -
Oracle10g系统管理17
2011-10-09 08:49 64872.簇是存储表数据的一种可选方法,它由共享相同数据块的一组表 ... -
Oracle10g系统管理16
2011-10-08 14:20 72468.分区表:范围分区、散列分区、列表分区、组合分区范围分区c ... -
Oracle10g系统管理14
2011-10-08 14:18 72461.设计表规划表的类型 ... -
Oracle10g系统管理13
2011-10-08 14:18 76459.审计分类特权用户审计:审计特权用户所执行的数据库操作,设 ... -
Oracle10g系统管理12
2011-10-07 08:38 89557.PROFILE是口令限制、资源限制的命名集合。在客户端将 ... -
Oracle10g系统管理11
2011-10-07 08:38 73156.精细访问控制使用户可以使用函数、策略实现更加细微的安全访 ... -
Oracle10g系统管理10
2011-10-06 08:54 67953.create user devep identified ... -
Oracle10g系统管理9
2011-10-06 08:53 61751.UNDO数据的作用回退事务读一致性事务恢复闪回查询 ... -
Oracle10g系统管理8
2011-10-06 08:53 70049.建立表空间create tablespace user0 ... -
Oracle10g系统管理7
2011-10-06 08:52 72245.重做日志用于记载事务操作所引起的数据库变化。 重做入口 ... -
Oracle10g系统管理6
2011-10-05 08:20 71239.控制文件用于记录和维护数据库的物理结构。当启动例程并打开 ... -
Oracle10g系统管理5
2011-10-05 08:20 70334.数据字典是Oracle数据库最重要的组成部分,它提供了数 ... -
Oracle10g系统管理4
2011-10-04 11:45 55830.建立数据库步骤:建 ... -
Oracle10g系统管理3
2011-10-04 11:44 67822.管理初始化参数startup spfile=$ORACL ... -
Oracle10g系统管理2
2011-10-02 13:43 84213.数据库物理结构数据 ...
相关推荐
在深入探讨Oracle 10g系统管理之前,我们首先要理解Oracle数据库的基本架构。Oracle数据库是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据主导地位。Oracle 10g是Oracle公司推出的一个重要版本,...
Oracle 10g 系统管理员简明教程目录 本教程目录涵盖了 Oracle 10g 系统管理员需要掌握的知识点,包括 Oracle 10g 的安装、配置、数据库结构、SQL 语句、PL/SQL 编程等方面。 安装和配置 * Oracle 10g 的安装类型...
精通oracle 10g系统管理 Oracle本书是专门为Oracle数据库管理员提供的系统管理手册,通过学习本书,读者不仅可以掌握Oracle数据库的基本管理方法,还可了解并掌握Oracle Database 10g所提供的新特征,包括 Web页面的OEM...
如何更好地管理ORACLE 10G数据库,通过这本精通oracle 10g系统管理你可以了解到怎么成为ORACLE 10G高手。
Oracle 10g数据库管理系统是Oracle公司发布的一款重要的企业级数据库产品,其在数据库领域具有广泛的应用和深远的影响。本书“Oracle 10g数据库管理艺术”无疑是对这一技术的深度解析,旨在帮助读者掌握Oracle 10g的...
《Oracle10g系统管理员使用手册》是一本深入解析Oracle10g数据库管理系统运维的权威指南,主要面向那些需要管理、监控和优化Oracle10g环境的系统管理员。Oracle10g是Oracle公司推出的数据库产品,它在性能、可扩展性...
精通oracle10g系统管理.pdf 精通oracle10g系统管理.pdf 精通oracle10g系统管理.pdf
Oracle 10G是Oracle公司在2003年发布的关系型数据库管理系统,而Oracle 11G则是在2007年推出的升级版。这两个版本之间的主要差异体现在性能、可扩展性、安全性以及管理功能等方面。 1. OCI接口:OCI提供了丰富的API...
Oracle 10g系统管理是数据库管理员(DBA)在企业数据管理中不可或缺的技能。这本书籍"精通Oracle10g系统管理"旨在帮助初学者快速掌握Oracle 10g的相关知识,通过清华大学计算中心的培训资料PPT,你可以深入理解Oracle...
这个“Oracle10g系统管理”资料可能是为了帮助用户深入理解和掌握Oracle10g的系统管理和维护技巧。下面将对Oracle10g的主要特点、系统管理的核心内容以及可能在教材中涉及的关键知识点进行详细阐述。 一、Oracle10g...
Oracle 10g是Oracle公司推出的数据库管理系统的一个版本,它主要针对64位操作系统环境设计。Oracle数据库系统在IT行业中有着广泛的应用,尤其在大型企业、金融机构和互联网公司的数据存储和管理方面扮演着核心角色。...
精通oracle 10g系统管理
### 如果忘记了Oracle Database 10g 管理员用户口令怎么办 在日常的数据库管理工作中,可能会遇到忘记管理员用户口令的情况。这不仅会给日常工作带来不便,还可能会影响到系统的正常运行。针对这种情况,本文将详细...
Oracle 10g(10g代表10th Generation,即第十代)是Oracle公司发布的一个重要版本,发布于2004年。这一版本在之前的版本基础上进行了大量的改进和优化,引入了许多新特性,特别是在网格计算方面有着显著的进步。以下...
在IT行业中,数据库管理系统是核心组件之一,Oracle 11g是Oracle公司的一款旗舰级数据库产品,被广泛应用于企业级应用。在这个“龙蜥anolis系统oracle11g安装包”中,我们聚焦于在龙蜥Anolis操作系统上安装Oracle 11...
Oracle 10g 是Oracle公司推出的数据库管理系统的一个版本,它在2003年发布,提供了许多增强功能和性能优化,对于数据库管理员(DBA)来说是重要的学习和认证目标。"Oracle OCP"(Oracle Certified Professional)是...