首先,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有了基本的认识,让我们进一步深入探讨Oracle新手DBA入门的知识点。 Oracle的安装与组成是DBA需要掌握的重要内容。Oracle数据库由两大部分组成:实例和数据库本身。数据库是由操作系统...
通过《Oracle基础第三版 Oracle Essentials》的学习,读者将对Oracle数据库有一个全面的认识,掌握基本的数据库管理技能,为进一步深入研究Oracle高级特性,如数据仓库、分布式系统和实时应用集群等打下坚实的基础。...
在进行 Oracle 调优时,了解表结构和索引情况是非常重要的。这包括了解每个表的结构、主键索引情况、每个表的记录数、创建索引的列类型、索引的最后一次 rebuild 时间、索引中的空闲空间等。 二、分析 SQL 语句的...
在"Oracle入门,第一步:Oracle Concepts"这一描述中,我们可以看出,本书主要目标是帮助初学者建立对Oracle数据库的基本认识,包括数据存储、查询、事务处理、安全性、备份恢复等关键概念。这些概念不仅是数据库...
通过这份练习题集,初学者可以逐步建立起对Oracle数据库的全面认识,从理论到实践,从简单操作到复杂问题的解决,都能得到锻炼和提升。同时,解决练习题的过程中,也能够培养解决问题的能力和独立思考的习惯,为日后...
Oracle 11g引入了许多新功能,如自动存储管理(ASM)、实时应用集群(RAC)等,提升了数据库的可用性和可扩展性。 "第2章 Oracle的体系结构"讲解了Oracle数据库的内部工作原理,包括数据库实例、内存结构、后台进程、...
通过本章的学习,读者应该能够对Oracle有一个初步的认识,并掌握安装和管理Oracle数据库的基本技能。 ### SQL数据操作和查询 #### SQL简介 SQL(Structured Query Language,结构化查询语言)是一种用于管理和...
### ORACLE学习手册和案例知识点总结 #### 一、ORACLE基础知识 ##### 1.1 ORACLE OLAP与OLTP介绍 **1.1.1 什么是OLTP** ...希望读者能够通过本文档对Oracle有一个更全面的认识,并能够在实际工作中运用这些知识。
1. **Oracle简介**:讲解Oracle的发展历程、主要特点和市场地位,让学习者对Oracle有一个全面的认识。 2. **数据库系统基础**:介绍数据库系统的基本概念,如关系模型、SQL语言、事务处理和并发控制,为后续深入...
通过这套教程,初学者可以逐步建立起对Oracle数据库的全面认识,为进一步深入学习和实践打下坚实基础。同时,理论知识与实践操作相结合,有助于提升解决问题的能力,为未来在数据库管理、开发或运维领域的工作做好...
这有助于他们建立起对数据库管理系统的初步认识,为进一步学习更高级的Oracle功能,如存储过程、触发器、索引优化、备份恢复等打下基础。通过逐步深入学习,初学者可以掌握如何创建和管理用户、配置数据库实例、确保...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级应用中占据着重要的地位。...这些资料将帮助你逐步建立起对Oracle的全面认识,无论是对初级学习者还是有经验的开发者,都将是一份宝贵的资源。
Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,它以其强大的功能和高度的稳定性而闻名。...通过阅读和实践,你可以逐步建立起对Oracle数据库的全面认识,并为进一步深入学习和实际工作打下坚实基础。
Oracle数据库是全球广泛使用...通过这八个实验,你将对Oracle数据库有全面的认识,从基础操作到高级应用,为实际工作中的数据库管理奠定坚实的基础。在实践中不断探索和提升,将使你更熟练地驾驭这个强大的数据库系统。
Oracle 11g是一款强大的关系型数据库管理系统,由甲骨文公司...通过这份“Oracle 11g入门教程PPT”,初学者可以逐步建立起对Oracle数据库系统的整体认识,并获得实际操作的经验,为更深入的学习和实践打下坚实的基础。
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据重要地位。...在实际学习过程中,结合“数据库.txt”中的资料,理论与实践相结合,相信你会对Oracle有更全面的认识。
Oracle 9.0是Oracle公司推出的数据库管理系统的一个...通过深入学习以上内容,你可以对Oracle 9.0有全面的认识,并具备基础的数据库管理和开发能力。实践中不断探索和应用,将使你在Oracle数据库领域更加熟练和专业。
1. **全面认识Oracle数据库**: Oracle数据库是一个关系型数据库管理系统,支持ACID属性,提供事务处理、并发控制和数据恢复等功能。它采用了一种名为“共享内存”架构的设计,允许多个用户同时访问和修改数据。 2....