`
dacoolbaby
  • 浏览: 1265872 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle索引的新认识

阅读更多

首先,Oracle的索引有。

普通索引B*树,BitMap索引,函数索引,组合索引,反转索引。

 

那么这里主要说一下常用的索引。

B*树索引就是普通索引。

使用方式如下:

create index idx_a on my_table(a);

 

B*树的组合索引用法如下:

create index idx_a_b on my_table(a,b);

 组合索引是普通索引的一种扩充。

每次查询,CBO会选择其中的一条索引进行查询。

所以即使建立了多个单列索引,也只是会选择一条进行使用。

 

注意,组合索引的前后顺序会有很大的差异。

按照上面的组合索引来说,如果是这种情况:

select * from my_table
where a = *

 

是可以走 idx_a_b这个索引的。

但是,相对,如果是:

select * from my_table
where b= *

 

则不会走idx_a_b这个索引了。

所以在使用组合索引的时候,一定要注意前后的顺序。

 

索引也是占用表空间的,至于占了多少,是可以查的到的。

--(1)查看索引段中extent的数量:
select segment_name, count(*)
  from dba_extents
 where segment_type = 'INDEX'
   and owner = UPPER('&owner') --schema 名
 group by segment_name

--(2)查看索引段中的block的数量:
select segment_name, sum(blocks)
  from dba_extents
 where segment_name = 'SYS_C005736' --对象名
 group by segment_name;
 


 

Oracle为数据库中的所有数据分配逻辑结构空间。
数据库空间的单位是数据块(block)、范围(extent)和段(segment)。

 

Oracle数据块(block)是Oracle使用和分配的最小存储单位。
它是由数据库建立时设置的DB_BLOCK_SIZE决定的。一旦数据库生成了,数据块的大小不能改变。
要想改变只能重新建立数据库。(在Oracle9i中有一些不同,不过这不在本文讨论的范围内。)

 

Extent是由一组连续的block组成的。
一个或多个extent组成一个segment。
当一个segment中的所有空间被用完时,Oracle为它分配一个新的extent。

Segment是由一个或多个extent组成的。它包含某表空间中特定逻辑存储结构的所有数据。

一个段中的extent可以是不连续的,甚至可以在不同的数据文件中。
一个object只能对应于一个逻辑存储的segment,
我们通过查看该segment中的extent,可以看出相应object的存储情况。

 

面对一些海量数据表,选择适合的索引可以降低存储大小,降低成本,也能够提高查询效率。

分享到:
评论

相关推荐

    Oracle新手DBA入门.pdf

    现在我们已经对数据库和Oracle有了基本的认识,让我们进一步深入探讨Oracle新手DBA入门的知识点。 Oracle的安装与组成是DBA需要掌握的重要内容。Oracle数据库由两大部分组成:实例和数据库本身。数据库是由操作系统...

    Oracle基础第三版 Oracle Essentials

    通过《Oracle基础第三版 Oracle Essentials》的学习,读者将对Oracle数据库有一个全面的认识,掌握基本的数据库管理技能,为进一步深入研究Oracle高级特性,如数据仓库、分布式系统和实时应用集群等打下坚实的基础。...

    Oracle调优总结

    在进行 Oracle 调优时,了解表结构和索引情况是非常重要的。这包括了解每个表的结构、主键索引情况、每个表的记录数、创建索引的列类型、索引的最后一次 rebuild 时间、索引中的空闲空间等。 二、分析 SQL 语句的...

    Oracle Concepts(10g)【Oracle入门第一步】

    在"Oracle入门,第一步:Oracle Concepts"这一描述中,我们可以看出,本书主要目标是帮助初学者建立对Oracle数据库的基本认识,包括数据存储、查询、事务处理、安全性、备份恢复等关键概念。这些概念不仅是数据库...

    Oracle练习题初学者适用

    通过这份练习题集,初学者可以逐步建立起对Oracle数据库的全面认识,从理论到实践,从简单操作到复杂问题的解决,都能得到锻炼和提升。同时,解决练习题的过程中,也能够培养解决问题的能力和独立思考的习惯,为日后...

    Oracle数据库基础ppt

    Oracle 11g引入了许多新功能,如自动存储管理(ASM)、实时应用集群(RAC)等,提升了数据库的可用性和可扩展性。 "第2章 Oracle的体系结构"讲解了Oracle数据库的内部工作原理,包括数据库实例、内存结构、后台进程、...

    Oracle经典教程1——走进Oracle

    通过本章的学习,读者应该能够对Oracle有一个初步的认识,并掌握安装和管理Oracle数据库的基本技能。 ### SQL数据操作和查询 #### SQL简介 SQL(Structured Query Language,结构化查询语言)是一种用于管理和...

    ORACLE学习手册和案例

    ### ORACLE学习手册和案例知识点总结 #### 一、ORACLE基础知识 ##### 1.1 ORACLE OLAP与OLTP介绍 **1.1.1 什么是OLTP** ...希望读者能够通过本文档对Oracle有一个更全面的认识,并能够在实际工作中运用这些知识。

    北大青鸟oracle实用培训课件

    1. **Oracle简介**:讲解Oracle的发展历程、主要特点和市场地位,让学习者对Oracle有一个全面的认识。 2. **数据库系统基础**:介绍数据库系统的基本概念,如关系模型、SQL语言、事务处理和并发控制,为后续深入...

    Oracle入门教程-28本全套

    通过这套教程,初学者可以逐步建立起对Oracle数据库的全面认识,为进一步深入学习和实践打下坚实基础。同时,理论知识与实践操作相结合,有助于提升解决问题的能力,为未来在数据库管理、开发或运维领域的工作做好...

    Oracle入门——oracle的基础入门知识,适合初学者。

    这有助于他们建立起对数据库管理系统的初步认识,为进一步学习更高级的Oracle功能,如存储过程、触发器、索引优化、备份恢复等打下基础。通过逐步深入学习,初学者可以掌握如何创建和管理用户、配置数据库实例、确保...

    学习oracle一些资料chm格式

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级应用中占据着重要的地位。...这些资料将帮助你逐步建立起对Oracle的全面认识,无论是对初级学习者还是有经验的开发者,都将是一份宝贵的资源。

    oracle初学者1000问

    Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,它以其强大的功能和高度的稳定性而闻名。...通过阅读和实践,你可以逐步建立起对Oracle数据库的全面认识,并为进一步深入学习和实际工作打下坚实基础。

    Oracle实验报告(1-8)

    Oracle数据库是全球广泛使用...通过这八个实验,你将对Oracle数据库有全面的认识,从基础操作到高级应用,为实际工作中的数据库管理奠定坚实的基础。在实践中不断探索和提升,将使你更熟练地驾驭这个强大的数据库系统。

    Oracle 11g入门教程PPT

    Oracle 11g是一款强大的关系型数据库管理系统,由甲骨文公司...通过这份“Oracle 11g入门教程PPT”,初学者可以逐步建立起对Oracle数据库系统的整体认识,并获得实际操作的经验,为更深入的学习和实践打下坚实的基础。

    oracle数据库速学

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据重要地位。...在实际学习过程中,结合“数据库.txt”中的资料,理论与实践相结合,相信你会对Oracle有更全面的认识。

    Oracle9.0入门

    Oracle 9.0是Oracle公司推出的数据库管理系统的一个...通过深入学习以上内容,你可以对Oracle 9.0有全面的认识,并具备基础的数据库管理和开发能力。实践中不断探索和应用,将使你在Oracle数据库领域更加熟练和专业。

    高性能动态SQL Oracle数据安全 Oracle 数据库的聚簇技术 等等

    1. **全面认识Oracle数据库**: Oracle数据库是一个关系型数据库管理系统,支持ACID属性,提供事务处理、并发控制和数据恢复等功能。它采用了一种名为“共享内存”架构的设计,允许多个用户同时访问和修改数据。 2....

Global site tag (gtag.js) - Google Analytics