`

<<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数据库中的基础但至关重要的元素。 **1. 约束(Constraints)** 约束是Oracle数据库中用于确保数据完整性的规则。它们分为以下几种类型: - **非空约束...

    oracle核心技术读书笔记一附件1

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其核心技术涉及数据存储、查询优化、并发控制、事务处理等多个方面。...通过阅读和理解这些读书笔记,可以提升对Oracle数据库的理解和操作能力。

    Oracle学习笔记(索引)

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

    李兴华Oracle全部笔记

    首先,笔记可能包含了Oracle数据库的基础知识,如SQL语言的使用,包括SELECT、INSERT、UPDATE、DELETE等基本操作,以及更复杂的子查询、联接查询、视图和索引等。此外,可能还涉及了数据库管理的基本概念,如数据...

    ORACLE索引笔记.pdf

    Oracle数据库中的索引是提升查询性能的关键因素,但设计和管理索引也需要...总之,Oracle索引设计是一个平衡查询速度和DML操作成本的过程。理解并应用上述原则可以帮助我们创建和优化数据库性能,提供更高效的服务。

    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_sql笔记

    Oracle SQL是数据库管理员和开发人员在Oracle数据库系统中进行数据查询和管理的重要工具。这篇笔记主要涵盖了Oracle SQL的...这两份“Oracle SQL笔记”文档应包含了上述各个方面的详细解释和实例,值得仔细阅读和学习。

    Oracle 19C OCP课堂笔记.zip

    1. **Oracle 19C新特性** - **Autonomous Database**: Oracle 19C引入了自治数据库,这是一个完全自动化、云原生的数据库服务,可以自我管理、自我保护和自我优化。 - **In-Memory Column Store优化**: 提升了分析...

    成功之路Oracle11g学习笔记

    《成功之路Oracle11g学习笔记》是一本专为初学者设计的Oracle数据库学习资源,旨在帮助读者系统地掌握Oracle11g的基础知识。Oracle11g是Oracle公司推出的一个重要版本,它提供了许多增强的功能和优化,使得数据库...

    Oracle学习笔记精华版

    笔记可能涉及索引的创建和管理、SQL调优(如使用EXPLAIN PLAN分析查询执行计划)、数据库统计信息的收集、存储优化以及使用Oracle的性能监控工具(如AWR和ASH报告)。 此外,Oracle的安全管理包括用户权限管理、...

    Oracle 10g 学习笔记

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

    涂抹Oracle—三思笔记之一步一步学Oracle

    "三思笔记"则强调了学习Oracle时需要思考、实践和反思的重要性,引导读者不仅掌握技术,还理解其背后的原理和最佳实践。 1. **Oracle基础** - 数据库概念:了解数据库的基本概念,包括数据模型、关系型数据库、SQL...

    韩顺平Oracle教学笔记.docx

    韩顺平Oracle数据库教程笔记涵盖了Oracle数据库的基础知识和高级技术,涵盖了数据类型、查询语句、条件语句、排序语句、分组语句、联结语句、子查询、数据操作、视图、索引、存储过程、触发器、数据库设计、数据库...

    韩顺平oracle课堂笔记

    《韩顺平Oracle课堂笔记》是一份详尽的Oracle数据库学习资料,涵盖了多个关键知识点,旨在帮助学习者深入理解并掌握Oracle数据库系统的核心技术。在这些笔记中,主要讲解了以下几个方面: 一、存储过程 存储过程是...

    Oracle11g学习笔记

    这篇学习笔记将带你深入理解Oracle11g的核心概念和技术,帮助你踏上数据库管理的成功之路。 首先,Oracle11g的基础部分涵盖了数据库安装、配置与管理。在安装过程中,你需要了解如何选择合适的安装选项,如企业版或...

    oracle培训笔记2

    - 其他天数的笔记可能包括存储过程、触发器、索引优化、备份恢复策略等内容。 通过这样的培训,参与者将能够全面掌握Oracle数据库的使用,从基本操作到复杂的数据库设计和性能优化。不断学习和实践是提升Oracle技能...

    涂抹Oracle--三思笔记

    《涂抹Oracle--三思笔记》是一份专注于Oracle数据库技术的学习资料,主要涵盖了Oracle数据库系统的基础知识、高级特性和常见问题的解决策略。这份文档可能是由一位经验丰富的IT专家撰写,旨在帮助读者深入理解和掌握...

    Oracle课堂笔记(很全很详细的Oracle笔记)

    根据提供的信息,我们可以总结出以下关于Oracle的相关知识点: ### Oracle基础知识与分类 #### DDL (Data Definition Language) 数据定义语言 - **DDL** 主要用于创建、修改或删除数据库对象,如表、索引等。 ###...

    Oracle日常维护操作笔记

    本笔记主要涵盖了Oracle数据库在表空间管理、用户与权限控制以及归档和非归档模式操作等方面的基本知识。 一、表空间 1. 创建表空间:表空间是Oracle数据库存储数据的逻辑单位,用于组织和管理数据库对象,如表、...

Global site tag (gtag.js) - Google Analytics