Oracle数据库应用论文

合集下载

oracle数据库论文

oracle数据库论文

题目 Oracle 10g数据库概述学院:学与计算机科学数学院专业:计算机科学与技术 .班级: .学号: . 姓名: .Oracle 10g数据库安全1、Oracle数据库安全概述服务器上的数据对于一个企业或事业单位来说可能是最重要的资源,保护这些数据对企业和事业单位意义重大。

如今大型关系型数据库多数单位都使用的是Oracle数据库,数据库的安全性是指允许或者禁止用户在数据库上进行的操作。

Oracle数据库的安全理涉及很多方面,比如控制数据的一致性和并行性,建立不同安全域的用户组与用户,以及不同客户连接的不同权限,管理员对不同用户的角色和权限的控制,建立足够有效的审计安全策略等等。

笔者重点介绍Oracle数据库中的角色和不同角色的权限问题。

2 、Oracle数据库中的角色在Oracle数据库中,角色对管理员来说是一个简单然而却又是功能非常强的机制。

当据库较小,访问数据库的用户不多时,对用户在每一个表上要求的特定访问进行授权还是可以接受的;然而随着数据库的增大和用户的增多,权限管理就比较麻烦了。

操作系统采用用户组的概念来描述分配给不同用户的系统资源的访问权限问题,Oracle数据库则采用“角色”的概念来组织不同的权限,角色可以分配给其他用户和角色,角色的一些特性能大大简化在数据库中的权限管理。

在实际运用中,通常角色由数据库管理员定义,然后再由DBA将权限分配给基于这些角色的用户。

数据库管理员需要经常为数据库的各种不同应用创建不同的角色,然后将不同的权限授予这些角色,一个应用可以包含几个不同的角色,每个角色都有不同的权限集合。

视故障规律和故障机理的研究,加强日常维护、检查和预修。

故障管理的展开程序有以下八个方面:(1)做好宣传教育工作,使操作和维修工人自觉地对机械设备故障进行认真记录、统计和分析,提出合理化建议。

(2)紧密结合本企业生产实际和机械设备状况的特点,把在用机械设备分成A、B、C三类,以确定故障管理的重点。

基于Oracle数据仓库应用技术的研究与实现

基于Oracle数据仓库应用技术的研究与实现

基于Oracle数据仓库应用技术的研究与实现本文介绍了数据仓库系统的设计与实现方法。

武汉科技大学硕学论士位文摘要一1第页数据仓库是一项基于数据管理和利用的综合性技术。

近年来,数据仓库技术在信息技术领域中日益成熟,己成为业界研究的重点。

企业要想在市场竞争中取胜,获得更大的经济效益,可以利用数据仓库技术,对企业的业务数据进行深层次的挖掘、分析历史和当前的业务数据以及相关环境的数据,快速获取其中有用的决策信息,为企业提供快速、准确和方便的决策支持。

数据仓库是面向主题的、集成的、变的时和非易失的数据集合,支持管理的决策过程。

数据仓库不是一个新的平台,而是一个新的概念。

数据仓库也不是一个现成的产品,而是一个解决方案。

数据仓库是在收集各种分散、异构数据源的基础上,对数据进行转换和集成,从而为决策者提供单一的分析环境,帮助其进行科学决策。

联机分析处理(LnAltc1rcigOA)O一ieayiaPoen,Lp是数据仓库的一个典型的应用。

nn它能将数据仓库中的数据按照不同的粒度级进行聚合和预计算,从而在用户面前展现多维数据视图。

同时,联机分析处理还提供了较直观的多维分析操作,包括切片、切块、上卷、下钻和旋转等,使用户能多角度、多层次地观察数据仓库中的数据。

本论文对面向决策支持的数据仓库技术进行了深入的研究,利用数据仓库和联机分析处理的相关知识,独立设计了钢铁销售决策支持的数据仓库系统的架构,建立了数据仓库系统,并在此基础上进行应用研究。

本文阐述了数据仓库的基本概念及特点、数据仓库的体系结构、数据仓库的数据组织、数据仓库的数据分析等知识,介绍了oal公司提供的rce基于oalg数据仓库解决方rcei案及其关键工具,在对本文的理论基础进行了详细的介绍后,研究了如何将数据仓库及联机分析处理有关理论、方法应用于决策支持系统中.完成的主要工作有:结合钢材销售主业务,构建数据仓库模型,划分了合同、销售及来款三个主题,建立了满足此模型需求OA三层客户/LP服务器体系结构,进而完成了为销售决策提供支持的数据仓库环境的设计;运用O工具实Bw现了部分系统需求数据的T转换;为了EL在两维的屏幕中显示多维数据,运用了最新的oaluieltlineol中的lcvrrrceBnnelgcTonoee及e相关工具,实现了LPO多维分析操作;A设计了oal数据仓库的应用模型,基于cer独立完成了某钢铁公司销售决策支持系统的数据仓库架构设计、建模及OA分析,LP从而实现了数据仓库系统在销售决策中的实际应用。

文献综述(Oracle存储过程原理及应用

文献综述(Oracle存储过程原理及应用

毕业设计(论文)文献综述题目Oracle存储过程原理及应用专业计算机科学与技术班级07级计科1 班学生宋龙指导教师王家伟重庆交通大学2011年ORACLE存储过程原理及应用摘要计算机技术的飞速发展,推动了整个社会的信息化进程,促进了信息技术的进步,催生了量的信息系统,尤其是各种管理软件。

而管理软件离不开对大量数据的处理,这就要依赖于数据库管理系统。

Oracle 是当前世界上使用最为广泛的数据库管理系统之一,由于Oracle 拥有强大的数据管理能力和较好的数据保密性,以及出众的技术优势。

Oracle 得到了大规模的应用,它经常作为大型管理软件的后台数据库。

程序可以通过相应的软件接口对数据库进行操作,因为大型系统的业务规则一般都比较复杂,需要进行多个库表的操作,逻辑比较复杂,如果单纯使用SQL 语句进行数据库操作,应用程序代码会非常冗长,网络传输的负担会加重,系统响应速度也较慢,一旦业务规则发生变化,需要进行大量的代码修改工作,尤其是对于非常复杂的数据库操作,作量会成倍增长,与此相应的系统调试的工作量也很大。

这非常不利于系统的维护和使用,同时造成了系统客户端的工作量的加大,而服务器强大的处理能力又被闲置。

针对这种弊端,几乎所有的大型系统都使用存储过程来进行数据库操作。

采用这种数据库操作模式,可以把应用程序和数据库操作相对独立开来,分别管理。

关键字:信息技术, Oracle, 数据管理, 存储过程, 数据保密, 数据库, 数据库技术, 数据库系统引言在Oracle 中,复杂的业务规则和应用逻辑可作为过程(procedure)存储。

存储过程是一组SQL 和PL/SQL 语句,它允许我们把加强业务规则的代码从应用移动到数据库中。

结果是,代码只存储了一次,却可以被多个应用使用。

因为Oracle 支持存储过程,应用中的代码可以变得更紧凑一致和更易于维护。

使用存储过程可以极大地提高数据访问效率,提升整个应用系统的性能。

Oracle论文数据库论文

Oracle论文数据库论文

Oracle论文数据库论文摘要:该文是以oracle数据库的语句为研究对象对象,由于其系统结构复杂, 性能受多方面因素影响,其中sql语句的执行效率是影响其性能的关键因素之一。

所以该文将围绕sql语句优化策略进行阐述,探讨如何设计最佳的sql语句,提高sql语句在数据库中的解析和执行效率,并给出了相关实例分析介绍。

关键词:oracle;数据库;sql;优化随着网络和电子商务迅速发展,在数据库应用方面也在不断扩大,数据库系统的性能优化问题也越来越受关注。

oracle是我国目前比较流行的一种大型数据库,由于其系统结构复杂,性能受多方面因素影响,如何提高其性能就成了一个十分关键的问题。

oracle数据库性能优化通常包括存储优化、运行性能优化和sql语句优化等。

下面向大家介绍如何提升oracle数据库系统的性能。

1 oracle数据库的sql语句对oracle数据库进行查询、添加、删除等各种操作最终都是通过sql语句来执行的,因此sql语句的执行效率往往是oracle数据库的性能高低的最终决定方面。

oracle数据库在执行一条sql语句时通常可以分成三个步骤:解析(parse),执行(execute)和提取结果(fetch)。

sqi 语句的解析处理步骤一般以下7步:1) 计算语句值;2) 查看共享池中有无与此语句值相同的语句,若有则转到执行第7步;3) 准备要运行的sql语句;4) 在共享池中为新语句创建空间;5) 将新语句存放在共享池中;6) 修改共享池图,标明语句的值和其在共享池中的位置;7) 执行准备好的sql语句。

因为提取结果阶段的优化通常是通过硬件和oracle系统的优化来实现的,我们讨论的sql语句优化一般是在解析和执行阶段进行的。

2 sql语句优化sql语句优化的就是在结果正确的前提下,用优化器可以识别的另外一种sql语句,减少表扫描的i/o次数,尽量避免表搜索的发生。

目的就是将性能低下的sql语句转换成结果相同、性能优异的另外一种sql语句,尽量保持处理器时间和i/o时间的平衡,并使数据查找的路径最简化。

oracle数据库性能优化论文

oracle数据库性能优化论文

oracle数据库性能优化论文
摘要:oracle数据库具有伸缩性良好、功能齐全而深受人们的喜爱,占据大部分数据库市场份额。

提升oracle数据库的性具有极其重要的意义,也是提高数据库工作效率、减少成本的必经之路。

国际航空业务及航空结算oracle系统作为数据库系统应用大户,在提升oracle数据库方面亦该做出表率,结合实际考虑各方面的影响因素,尽可能消除隐患。

0导言
随着科技的进步以及实际需求的增强,oracle数据库用量不断增多,其规模也空前庞大,随之而来的问题也日益凸显。

很多企业部门在应用oracle数据库时每天都能产生大量复杂的数据,为了更好管理oracle数据库系统,保证系统的正常运转,对oracle的性能优化成了很多企业的当务之急。

国际航空业务及航空结算系统由于信息量庞大以及信息复杂等特点一直难以实际掌控,必须进行相关oracle的性能优化。

1 Oracle数据库概述
1.1oracle数据库的概念oracle是一个功能极其强大的数据库系统。

始于上世纪七十年代末流行的关系型数据库技术。

这种类型数据库的关键就是通过是理解数据间的关系,构造反映这些关系的信息库系统。

oracle成功将关系型数据库放到计算机桌面上,提供了一个比较完整的客户/服务器体系结构的商用dbms[1]。

1.2 Oracle数据库的物理和逻辑结构在Oracle数据库中,。

ORACLE数据库SQL应用优化论文

ORACLE数据库SQL应用优化论文

ORACLE数据库的SQL应用优化摘要:sql server 2003是一种比较复杂的数据库,主要靠内部的映射关系的一种数据库,这种数据库的服务一般来说是对于复制、集成、分析、通知以及报表等相关服务的融合,此外,visual 等第三方开发工具的有效结合,在sql server 2003数据库中,sql语句的应用优化对于数据库的发展很重要,本文就是从sql应用优化着手,对于数据库的sql语句进行了分析。

关键词:oracle;sql;优化中图分类号:tp311 文献标识码:a 文章编号:1007-9599 (2011) 22-0000-01sql application optimization of oracle databaseyang qiming(tongren polytechnic,tongren 554300,china)abstract:sql server 2003 is a more complex database,mainly by the internal mapping of a database,the database service is generally for replication,integration,analysis, notification and reporting and other related services integration,in addition,visual and so the effective integration of third-party development tools in sql server 2003 database,sql statements in application optimized for the database development is very important,this is the application of optimization started from sql,the sqlstatements for database analysis.keywords:oracle;sql;optimization一、oracle数据库技术概述首先.net framework与sql server 2003有机结合的过程中,sql server利用.net平台特有的公用语言运行时(clr-common language runtime)的特性来生成数据库的相关对象,在数据库管理系统中充分利用.net代码的功能。

ORACLE数据库管理系统介绍毕业论文

ORACLE数据库管理系统介绍毕业论文

ORACLE数据库管理系统简介1.1的特点。

可移植性ORACLE是用C语言开发的,所以产品对硬件和操作系统有很强的独立性。

ORACLE产品可以从大型机运行到微型计算机。

它可以在UNIX、DOS、Windows等操作系统上运行。

兼容性兼容IBM 的SQL/DS、DB2等。

因为它采用了国际标准的数据查询语言SQL。

并提供了读取其他数据库文件的间接方法。

不同通讯协议的连接,不同型号和不同操作系统组成的网络也可以运行oraˇCLE数据库产品。

2.2的总体结构(1)ORACLE的文件结构ORACLE数据库系统包括以下五类文件:ORACLE RDBMS的代码文件。

数据一个数据库可以有一个或多个数据文件,每个数据文件可以存储一个或多个表、视图、索引和其他信息。

必须有两个或更多的日志文件,用于记录所有数据库更改和恢复数据库。

控制文件可以备份,使用多个备份控制文件来防止控制文件的损坏。

参数文件包含启动数据库例程所需的配置参数。

(2)ORACLE的内存结构一个ORACLE例程有一个系统全局区(SGA)和一组程序全局区(PGA)。

SGA(系统全局区)包括数据库缓冲区、日志缓冲区和共享区。

PGA(程序全局区)是每个服务器进程一个。

当服务器进程启动时,它被分配一个PGA区域来存储数据和控制信息。

(ORACLE Oracle的流程结构包括三种类型的流程:①用户进程用于执行用户应用程序。

②服务进程处理与之相连的一组用户进程的请求。

③后台进程ORACLE为每个数据库例程创建一组后台进程,为所有用户进程服务,包括:DBWR(数据库写入程序)进程负责将修改后的数据块从数据库缓冲区写入数据库。

LGWR(日志写入程序)进程负责将日志从SGA的缓冲区写入日志文件。

SMON(系统监视器)进程,它定期扫描SAG进程信息,注销失败的数据库例程,并回收未使用的内存空间。

PMON(Process monitor)进程,当一个用户进程异常结束时,这个进程负责恢复未完成的业务,注销失败的用户进程,释放用户进程占用的资源。

oracle数据库论文oracle数据库论文

oracle数据库论文oracle数据库论文

oracle数据库论文oracle数据库论文弃Oracle用DB2 解密可口可乐数据库迁移用了多年的Oracle,联合可口可乐瓶装公司在做了一项评估之后,决定改用DB2。

堪称世界最有价值品牌之一的可口可乐,每天要配销 10亿杯以上的饮料到全球五大洲、超过200个国家。

为了达成制造与销售的任务,为可口可乐制造、销售饮料的联合可口可乐瓶装公司(Coca-Cola Bottling Co. Consolidated,CCBCC)多年前即将SAP ERP平台部署在 Oracle 数据库上,以处理相关的流程及产销存信息。

然而,随着产量增加、流程改变,以及希望提升效率等原因,原来的SAP平台已不能满足需要,此时 CCBCC 需要将 SAP R/3 Enterprise 系统升级至 SAP ERP 6.0,但这样一来,就必须拿出大笔资金,升级Oracle 数据库,并且要购买额外的 Oracle 使用及维护授权。

在做了审慎的评估之后,CCBCC 最后决定不升级 Oracle 数据库,而转为采用DB2。

2008年4月份,CCBCC将SAP迁移到了DB2平台。

现在三年过去了,CCBCC技术部门的Thomas De Juneas和Andrew Juarez近日来到中国,讲述了他们的使用感受。

节省软硬件及维护成本为什么CCBCC会做出弃Oracle用DB2的决定?CCBCC当时做了一项成本评估,发现使用Oracle和DB2在成本上的差异巨大,这既包括软件成本也包括硬件成本。

经过三年的使用,CCBCC验证了当年的评估结果。

“当时是出于节省的目的,后来随之得到可靠性、易用性以及性能上的好处。

”CCBCC首席SAP Basis/DBA工程师Andrew Juarez 说。

从软件成本上看,使用Oracle和DB2差异明显。

对CCBCC来说,Oracle的软件许可费用每年有5%的增长。

而升级SAP就要升级现有的Oracle数据库,并购买其他Oracle许可证,就面临着增加新的采购费用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle数据库应用——模式对象论文080311119 邵博伦模式对象介绍模式(schema)是数据的逻辑结构或者说模式对象的汇总。

一个模式对应一个数据库用户,并且名字和数据库用户名相同。

每个用户都有一个单独的模式。

模式对象可以通过SQL 创建(DDL)和操作(DML)。

模式对象是数据的逻辑存储结构。

数据对象和磁盘上保存其信息的物理文件并不一一对应。

Oracle在数据库的一个表空间上保存模式对象。

每个对象的数据物理的保存在表空间的一个或者多个数据文件上。

对某些对象如表、索引、聚集来说,你可以指定在表空间的数据文件上Oracle可以分配多大的磁盘空间来存储这个对象。

模式和表空间没有什么联系:一个表空间可以包换来自不同模式的对象,模式对象可以包含在不同的表空间上。

表概述表是Oracle数据库内数据存储的基本单位。

数据是按照行和列来存储。

你用一个表名(比如employees)、一系列列来定义表。

你为每列指定一个列名(比如employee_id,last_name和job_id等),一个数据类型(比如VARCHAR2,DATE,NUMBER)和一个宽度。

宽度可以是数据类型(比如日期)预先定义好的。

如果列是NUMBER类型,定义范围和精度就可以了。

行是关联到一个记录的列信息的集合。

你可以指定表中每个列的规则。

这些规则叫做完整性约束条件。

NOT NULL就是一个完整性约束的例子。

这个约束条件要求这列的每一行都要包含一个值。

你还可以指定表列在保存在数据文件之前将数据加密。

加密阻止了越过数据库访问控制来直接使用操作系统工具查看数据文件的现象。

在你创建表之后,使用SQL语句插入行数据。

表的数据就可以使用SQL查询、删除和更新。

表的建立:SQL>CREATE TABLE jxzy.switch(>OFFICE_NUM NUMBER(3,0) NOT NULL,>SWITCH_CODE NUMBER(8,0) NOT NULL,>SWITCH_NAME VARCHAR2(20) NOT NULL);表的修改:SQL>ALTER TABLE jxzy.switch>ADD (DESC VARCHAR2(30));表的删除:SQL>DROP TABLE jxzy.switch>CASCADE CONSTRAINTS表的压缩:Oracle的表压缩特性通过减少数据块中重复值来压缩数据。

数据块(磁盘页)中保存的压缩数据是自包含的。

就是说,一个数据块中需要重新创建解压缩的所有数据信息对本数据块是可用的(一个块上的信息需要解压缩才能读取,但同样的信息在另一块上不需要)。

一个块上的所有行和列的重复值都在块开始的地方保存一次,这个地方也叫块的符号表。

这些(重复)值出现的地方都替代为指向符号表的链接。

除了开始的符号表之外,压缩数据库块看起来和通常数据库块非常类似。

适用于通常数据库块的所有数据库特性和函数也适合压缩数据库块。

包括表和实体化视图的数据库对象都可以压缩。

对于分区表来说,你可以选择压缩部分或者全部分区。

压缩属性可以用在表空间、表或者分区表。

如果在表空间级别声明压缩属性,那么其上创建的所有表默认都是压缩的。

你可以修改一个表(或者表空间、分区表)的压缩属性,但只对新加入表的数据有效。

因此,一个表或者分区可能同时包含压缩块和正常块。

这样确保数据大小不能因为压缩而增加;在压缩会增加块使用时,块不会使用压缩。

完整性约束管理数据库数据的完整性指数据的正确性和相容性。

数据完整型检查防止数据库中存在不符合语义的数据。

完整性约束是对表的列定义一组规则说明方法。

ORACLE提供如下的完整性约束.NOT NULL 非空PRIMATY KEY 主键一个表只能有一个,非空UNIQUE 唯一关键字CHECK 表的每一行对指定条件必须是true或未知(对于空值)FOREIGA KEY 外键唯一性约束(Unique constraint)唯一性约束可以保护表中多个数据列,保证在保护的数据列中任何两行的数据都不相同。

唯一性约束与表一起创建,在唯一性约束创建后,可以使用ALTER TABLE语句修改。

●语法:●某列定义非空约束:SQL>ALTER TABLE office_organization>MODIFY(desc VARCHAR2(20)>CONSTRAINT nn_desc NOT NULL)●某列定义唯一关键字:SQL>ALTER TABLE office_organization>MODIFY(office_name VATCHAR2(20)>CONSTRAINT uq_officename UNIQUE)●定义主键约束,主键要求非空:SQL>CREATE TABLE switch(switch_code NUMBER(8)>CONSTRAINT pk_switchcode PRIMARY KEY,)●使主键约束无效:SQL>ALTER TABLE switch DISABLE PRIMARY KEY●定义外键:SQL>CREATE TABLE POLE(pole_code NUMBER(8),>office_num number(3)>CONSTRAINT fk_officenum>REFERENCES office_organization(office_num)>ON DELETE CASCADE);●定义检查:SQL>CREATE TABLE office_organization(>office_num NUMBER(3),>CONSTRAINT check_officenum>CHECK (office_num BETWEEN 10 AND 99);注意用户不能删除在有外部键指向的表的唯一性约束。

这种情况下用户必须首先禁用或删除外部键(foreign key)。

删除或禁用唯一性约束通常同时删除相关联的唯一索引,因而降低了数据库性能。

经常删除或禁用唯一性约束有可能导致丢失索引带来的性能错误。

要避免这样错误,可以采取下面的步骤:1、在唯一性约束保护的数据列上创建非唯一性索引。

2、添加唯一性约束主键(Primary Key)约束表有唯一的主键约束。

表的主键可以保护一个或多个列,主键约束可与NOT NULL约束共同作用于每一数据列。

NOT NULL约束和唯一性约束的组合将保证主键唯一地标识每一行。

像唯一性约束一样,主键由B-tree索引增强。

创建主键约束使用CREATE TABLE语句与表一起创建,如果表已经创建了,可以使用ALTER TABLE语句。

索引概述索引是与表相关的一种结构,它是为了提高数据的检索速度而建立的。

因此,为了提高表上的索引速度,可在表上建立一个或多个索引,一个索引可建立在一个或几个列上。

●索引的建立:SQL>CREATE INDEX jxzy.idx_switch>ON switch(switch_name)>TABLESPACE jxzy;●索引的修改:SQL>ALTER INDEX jxzy.idx_switch>ON switch(office_num,switch_name)>TABLESPACE jxzy;●索引的删除:SQL>DROP INDEX jxzy.idx_switch;Oracle还支持函数索引和指定应用程序或使用范围的域索引。

增加或者减少索引并不需要修改任何的SQL语句的语法。

索引只是数据的快速访问途径。

它只影响执行速度。

假定一个数据被索引,索引就会直接指向包含这个值的行的位置。

索引在逻辑上和物理上都和关联表的数据独立。

你可以任何时候创建和删除索引而不会影响基表以及其他的索引。

如果你删除索引,所有的应用程序可以继续运行。

但是,以前访问删除的索引的数据会降低速度。

索引是一个独立的结构,还是需要存储空间的。

索引创建后Oracle自动维护和使用索引。

不需要用户额外操作,Oracle会自动将数据改变(比如增加行、修改行或删除行)反映到相关索引上。

索引数据的获取性能基本保持一致,甚至增加了新行也是如此。

但是一个表上存在多个索引还是会降低更新、删除和插入的性能,因为Oracle必须更新表的相关索引。

优化器可以使用现存的索引来构建另一个索引。

这样会创建一个更快的索引。

唯一和非唯一索引索引可以是唯一或者非唯一的。

唯一索引保证表在索引列(一个或多个)没有重复的行值。

非唯一索引并不强迫限制列值(唯一)。

Oracle推荐显示的使用CREATE UNIQUE INDEX语句来创建唯一索引。

通过主键或唯一约束来创建唯一索引并不一定会创建新索引,而且创建的索引也不确保是唯一索引。

复合索引复合索引(也叫关联索引)是一个在一个表的多个列上创建的索引。

复合索引的列可以是任何顺序的,并且不需要在表中相邻。

在SELECT语句的WHERE子句引用了复合索引的全部或者起始列的情况下,复合索引可以加快获取数据的速度。

因而,定义中使用的列的顺序非常重要。

通常,最常访问或最高选择率的行放在前面。

索引的内部结构Oracle使用B树索引来加快数据访问。

没有索引的情况下,你不得不依次扫描数据来找到值。

对于n行来说,平均的查询行数为n/2。

这个不会随着数据量的增加而缩放。

考虑将一个值的排序列表分成多个块宽度的范围(页块)上。

块的末尾除了块的指针之外都可以保存在一个搜索树中,n条数据花费log(n)的时间就可以找到。

这就是Oracle索引隐含的基本原理。

图5-7 B树索引的内部结构B树索引的较高的块(树枝块)包含指向低级别索引块的索引数据。

最低级别的索引块(叶块)包含每个索引数据和用来定位实际行的对应的rowid。

页块是双向关联的。

索引列的包含的字符集数据是基于数据库的字符集的二进制字符。

对于唯一索引,每个数据值对应一个rowid。

对于非唯一索引,排序序列中包含rowid,所以非唯一索引通过索引键和rowid排序。

包含null的所有键值不索引,除非是聚集索引。

两行都包含null,不违反唯一约束(因为Null是互不相同的)。

索引属性有两种类型的块:搜索使用的树枝块页块保存的值树枝块树枝块保存下列内容:两个键之间需要用来分叉的最小键前缀指向包含键值的子块如果块拥有n个键,,那么它们包含n+1个指针。

键和指针的数量由块大小限制。

页块所有的页块到根块的高度都相同。

页块保留下列信息:每行的全部键值表行的ROWID所有的键和ROWID对都是左右相连的。

他们按照(key,ROWID)排序。

B树结构的优势B树结构有如下优势:树的所有页块高度相同,所以获取索引上任何地方的任何数据所需的时间大致相同B树索引自动保持均衡状态B树索引的所有块平均来说是3/4满的B树对大多数查询提供了优秀的检索性能,包括精确识别和范围搜索插入、更新和删除都是高效的,并维护键顺序以便快速的获取数据B树索引对于小表和大表同样优秀,并且不会随着表尺寸的增长而降低性能索引唯一扫描索引唯一扫描是最高效的访问数据方式之一。

相关文档
最新文档