`

<<oracle索引技术》读书笔记1

阅读更多
expert indexing in oracle database 11g是个好书


1) create table cust(
cust_id number
,last_name varchar2(30)
,first_name varchar2(30));
  create index cust_idx1
on cust(last_name);

insert into cust (cust_id, last_name, first_name) values(7, 'ACER','SCOTT');
insert into cust (cust_id, last_name, first_name) values(5, 'STARK','JIM');
insert into cust (cust_id, last_name, first_name) values(3, 'GREY','BOB');
insert into cust (cust_id, last_name, first_name) values(11,'KHAN','BRAD');
.....
insert into cust (cust_id, last_name, first_name) values(274, 'ACER','SID');

1 select  last_name from cust where last_name='ACER'
则这个时候直接读索引就可以了,所有数据位于索引块,就是说,两个'acer'的last_name的都位于索引块;
    这个时候db block gets是为0的;
2  如果索引中不包含所有的信息
  select last_name,first_name from cust where last_name='ACER';
由于first_name不包含在索引中,因此必须通过row_id再到数据块文件中找出数据,因此就不是只在索引块中读数据了;
在执行计划中会看到通过table access by index rowid来访问

2) 删除索引的时候
   a 让索引不可见
      alter index addr_fk1 invisible;
      对查询优化器不可见,当修改表中记录的时候,依然由oracle维护,
         alter index addr_fk1 visible;
  b 或者使其不可用
      alter index addr_fk1 unusable;
        这个时候优化器不用,而且oracle 在建立表的时候也不会去维护;
   如果需要启用,则用rebuild
        alter index addr_fk1 rebuild;
   最后真正不用才drop index addr_fk1;

3) 管理索引和约束

  A 创建表和主键约束和索引分开
     create table cust(
cust_id      number
,first_name  varchar2(200)
,last_name   varchar2(200));

alter table cust
add constraint cust_pk
primary key (cust_id)
using index tablespace users;

2) 把建表,索引,约束三者分开
    create table cust(
cust_id number
,first_name  varchar2(30)
,last_name   varchar2(30));

create unique index cust_pk
on cust(cust_id);

alter table cust
add constraint cust_pk
primary key (cust_id);


 3) 创建主键约束的时候伴随自动生成的索引不能直接删除,必须先删除或禁用主键约束
   alter table cust disable controstran_cust_pk;
     .................. drop custratint_cust_pk;
            ...........drop primary key;

     也可以选择保留索引
     alter table cust drop constraint cust_pk keep index;
4) 在唯一键上建立b树索引
   create unique index cust_uk1 on cust(first_name,last_name) tablespace users;
       alter table cust add constraint cust_pk1 unique(first_name,last_name);


5) 在外键列上建立索引,如果没有索引,则往子表中插入数据或从子表中删除数据的时候,会锁定父表中的所有行;(就是子表删除
的操作还不提交的时候,父表的删除操作是不能继续完成的)


分享到:
评论

相关推荐

    oracle索引分区实践笔记

    oracle索引分区实践笔记,该笔记中详细描述Oracle的分区索引中的局部索引,全局索引使用中的区别,理解上的差异,执行中的不同,并附相关脚本

    oracle约束和索引笔记

    自己看视频做的笔记,以后再更新,虽然内容很少,但是一看就懂。我也是菜鸟,所以笔记都是菜鸟笔记

    ORACLE索引笔记.pdf

    ORACLE索引笔记.pdf

    Oracle学习笔记(索引)

    Oracle学习笔记(索引),有具体的代码案例,创建索引,删除索引,重建索引等等

    Oracle DBA调优技术学习笔记

    Oracle 12c-优化 Oracle 索引技术.pdf Oracle 12c 执行计划.pdf Oracle 12c锁.pdf Oracle 12c查询优化器.pdf Oracle 12c 使用绑定变量 VS 不使用绑定变量.pdf Oracle 12c 自动工作负载信息库AWR.pdf Oracle 12c 常用...

    Oracle 10g 学习笔记

    │ CSDN技术中心 Oracle学习笔记(一).mht │ Oracle 10G 数据库系统学习笔记.pdf │ Oracle DBA学习心得 --第0章 - ColorfulStar3399的专栏 - CSDN博客.mht │ Oracle DBA学习心得 --第1章 - ColorfulStar3399的...

    linux_oracle11g_索引笔记

    oracle11g基础索引笔记

    oracle学习笔记(从入门到精通)

    压缩包主要包括15个文档,主要是本人学习oracle过程中的笔记,希望对你有帮助:主要文档如下: 01-常用命令.txt 02-表空间建表.txt 03-基本查询语句学习笔记.txt 04-高级查询语句学习笔记.txt 05-锁和表分区学习...

    Oracle 入门文档2

    Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间 Oracle笔记 六、PL/SQL简单语句块、变量定义 Oracle笔记 七、PL/SQL 异常处理 Oracle笔记 八、PL/SQL跳转/判断/循环语句块 Oracle笔记 九、PL/...

    Oracle入门教程.三思笔记.一步一步学Oracle

    2012.9.Oracle三思笔记合集,供大家下载学习。压缩包里共32个PDF或DOC文件,都是整理版的,非常好阅读,谁下谁知道。 [三思笔记]drbd入门与应用.pdf [三思笔记]Linux5版本安装Oracle11gR2.pdf [三思笔记]Linux平台...

    Oracle 入门文档

    Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间 Oracle笔记 六、PL/SQL简单语句块、变量定义 Oracle笔记 七、PL/SQL 异常处理 Oracle笔记 八、PL/SQL跳转/判断/循环语句块 Oracle笔记 九、PL/...

    Oracle七天速成笔记

    此笔记是参加oracle培训时记录的。一共七天。 内容包括:数据库系统基本概念 ,工具,SQL语言,数据查询(包括链接查询和分组统计查询)、数据操作(增删改查)、PL/SQL高级编程(视图,函数,存储过程,序列,索引...

    oracle笔记其它数据库对象(序列索引同义词)

    oracle笔记其它数据库对象(序列、索引、同义词),有创建序列,创建索引,创建同义词的具体代码案例

    oracle所有知识点笔记(全)

    这是我自己学习oracle的时候,写的代码案例和笔记,基本上每一个知识点都写的很清楚!大家可以作为参考! 该有的知识点都有! 基本的sql语法,触发器,存储过程,存储函数, 流程控制,游标,异常处理,记录类型,...

    ORACLE精品脚本笔记

    表、索引的存储情况检查 &lt;br&gt;&lt;br&gt;select segment_name,sum(bytes),count(*) ext_quan from dba_extents where &lt;br&gt;tablespace_name='&tablespace_name' and segment_type='TABLE' group by tablespace_name,segment...

    三思oracle笔记包

    三思oracle笔记包 包含: Linux5版本安装Oracle11gR2 ORACLE 10gR2 RAC环境增加及删除节点 Oracle+RAC数据库配置DataGuard RMAN管理ORACLE_RAC数据库的备份与恢复 全面学习MySQL+Proxy特性 全面学习分区表及分区索引...

    老方块 ORACLE 教学笔记 整理

    老方块 ORACLE 教学笔记 整理 第1堂体验课-SQL技巧篇(一) 第2堂体验课-SQL技巧篇(二) 第3堂体验课-ORACLE并发事务和锁机制 第4堂体验课-索引机制 第5堂体验课笔记 ORACLE体系结构(一) 第6堂体验课笔记 ORACLE...

    Oracle数据库学习笔记

    Oracle数据库学习笔记,包括课程PPT(数据库基础,简单查询,单行多行函数,多表连接,子查询,高级子查询,集合运算,层次查询,DML与事务控制,数据库的网络连接,创建维护表,约束,视图,序列索引和同义词,用户...

    oracle工作笔记

    工作中积累的oracle sql用法 经典 实用 比如查表空间 索引 job 导数据 等等

    韩顺平oracle学习笔记

    韩顺平oracle学习笔记 第0讲:如何学习oracle 一、如何学习oracle Oracle目前最流行的数据库之一,功能强大,性能卓越。学习oracle需要具备一定基础: 1.学习过一门编程语言(如:java ,c) 2.最好学习过一门别的...

Global site tag (gtag.js) - Google Analytics