target
了解Oracle数据库产品结构及组成
掌握数据库基本用语
掌握Oracle基本用语
了解Oracle 11g的新特征
1. Oracle数据库产品结构及组成
Oracle 11g共拥有4个版本,分别是企业版、标准版、标准版1和个人版。
1.1 企业版
Oracle数据库11g企业版可以运行在Windows、Linux和UNIX的集群服务器或单 一服务器上,它提供了全面的功能来进行相关的事务处理、商务智能和内容管理,具有 业界领先的性能、可伸缩性、安全性和可靠性。
Oracle数据库11g企业版提供了许多选件以帮助企业发展业务,并达到用户期望的性能。其中,选件包括真正应用集群、活动数据卫士、OLAP、内存数据库缓存、数据 挖掘、可管理性、分区、空间管理、Database Sult、高级压缩、内容数据库、真正应用测试、全面恢复、高级安全性和标签安全性。
Oracle数据库11g企业版的主要优点如下:
高可靠性。能够尽可能地防止服务器故障、站点故障和人为错误的发生,并减 少计划内的宕机时间。
高安全性。可以利用行级安全性、细粒度审计、透明的数据加密和数据的全面 回忆确保数据安全和遵守法规。
更好的数据管理。轻松管理最大型数据库信息的整个生命周期。
领先一步的商务智能。高性能数据仓库、在线分析处理和数据挖掘。
1.2 标准版
Oracle 11g标准版功能全面,可适用于多达四个插槽的服务器。它通过应用集群服务实现了高可用性,提供了企业级性能和安全性,易于管理并可随需求的增长轻松扩展。标准版可向上兼容企业版,并随企业的发展而扩展,从而保护企业的初期投资。
标准版的主要优点如下:
多平台自动管理。可基于Windows, Linux和UNIX操作系统运行,自动化的自管理功能使其易于管理。
丰富的开发功能。借助Oracle Application Express, Oracle SQL开发工具和 Oracle面向Windows的数据访问组件简化应用开发。
灵活的订制服务。用户可以仅购买现在所需要的功能,并在以后通过真正应用集群轻松进行扩展。
1.3 标准版1
Oracle数据库llg标准版1功能全面,可适用于两个插槽的服务器。它提供了企业 级性能和安全性,易于管理,并可随需求的增长轻松进行扩展。与标准版一样,标准版 1可向上兼容其他数据库版本,并随企业的发展而扩展,从而使得企业能够以最低的成 本获得最高的性能,保护企业的初期投资。
标准版1的主要优点如下:
应用服务支持。以企业级性能、安全性、可用性和可伸缩性支持所有业务管理 软件。
多平台自动管理。可基于Windows、Linux和UNIX操作系统运行,自动化的 自管理功能使其易于管理。
全面的开发功能。借助Oracle Application Express, Oracle SQL开发工具和 Oracle面向Windows的数据访问组件简化应用开发。
灵活的订制服务。用户可以仅购买所需功能,并在需求增长时轻松添加更多功能。
1.4 个人版
个人版数据库只提供Oracle作为DBMS的基本数据库管理服务,它适用于单用户开发环境,其对系统配置的要求也比较低,主要面向开发技术人员使用。
2. 数据库基本用语
2.1 数据库
顾名思义,数据库DB (DataBase)即指存放数据的仓库,只不过该仓库位于计算机的存储设备上。
通常,这些数据面向一个组织、部门或整个企业,它们是按照一定的 数据组织模型存放在存储器上的一组相关数据集合。例如学生成绩管理系统中,学生的基本信息、学籍信息、成绩信息等都是来自学生成绩管理数据库的。
2.2 数据库管理系统
在建立了数据库之后,由数据库管理系统(DataBase Management System,DBMS) 实现对数据库中数据进行各种管理与操纵,科学地组织和存储数据、高效地获取和维护 数据、完成用户账户的建立和权限的分配,以及向用户提供各种操作功能。
数据库管理系统(DBMS)是指数据库系统中对数据进行管理的软件系统,它是数据库系统的核心组成部分,数据库系统的一切操作,包括査询、更新及各种控制,都是通过DBMS进行的。
2.3 数据库系统
数据库系统(DataBase System, DBS)是指在计算机系统中引入数据库后的系统,数据库系统的组成包括硬件平台、数据库、软件系统、 应用系统和相关人员等。
2.4 数据模型
模型是现实世界特征的模拟与抽象。比如一组建筑规划沙盘,精致逼真的飞机航模, 都是对现实生活中的事物的描述和抽象,见到它就会让人们联想到现实世界中的实物。
由于计算机不可能直接处理现实世界中的具体事物,因此人们必须事先把具体率物转换成计算机能够处理的数据,即首先要数字化,要把现实世界中的人、事、物、概念用数据模型这个工具来抽象、 表示和加工处理。
数据模型(Data Model)也是一种模型,它是数据库中用于提供信息表示和操作手段的形式构架,是数据库中用来对现实世界进行抽象的工具。
2.5 数据仓库
支持大量数据信息存储的叫做支持数据仓储或数据仓库。当把几个小型数据库集成 为一个大型数据库,并为一个较广泛的组织服务时,如果该数据库存储历史数据,提供 决策支持,提供数据汇总,提供只读数据,并且实质上充当所有向它提供数据的相关成 品数据库的数据接收器,那么它通常被叫做数据仓库(Data Warehouse)。
3. Oracle基本用语
3.1 数据字典
数据字典是Oracle数据库的重要组成部分。它由一系列拥有数据库元数据 (metadata)信息的数据字典表和用户可以读取的数据字典视图组成,存放有Oracle数据库所用的有关信息,其中主要内容包括如下:
系统的空间信息,即分配了多少空间,当前使用了多少空间等。
数据库中所有模式对象的信息,如表、视图、簇、同义词及索引等。
例程运行的性能和统计信息。
Oracle用户的名字。
用户访问或使用的审计信息。
用户及角色被授予的权限信息。
列的约束信息的完整性。
列的缺省值。
在Oracle数据库中,数据字典可以看作是一组表和视图结构。它们存放在SYSTEM 表空间中。在数据库系统中,数据字典不仅是每个数据库的核心,而且对每个用户也是 非常重要的信息。用户可以用SQL语句访问数据库数据字典。通过数据字典可实现如 下功能:
当执行DDL语句修改方案、对象后,Oracle都会将本次修改的信息记录在数 据字典中。
用户可以通过数据字典视图获得各种方案对象和对象的相关信息。
Oracle通过査询数据字典表或数据字典视图来获取有关用户、方案、对象的定义信息以及其他存储结构的信息。
DBA可以通过数据字典的动态性能视图监视例程的状态,作为性能调整的依 据。
3.2 数据文件
数据文件是用于存储数据库数据的文件,如表、索引数据等都物理地存储在数据文件中。
一个Oracle数据库可以拥有一个或多个物理的数据文件。
数据文件的大小可以用两种方式表示,即字节和数据块。数据块是Oracle数据库 中最小的数据组织单位,它的大小由参数DB_BLOCK_SIZE
来确定。
数据文件具有如下特征:
一个数据库可拥有多个数据文件,但一个数据文件只对应一个数据库。
可以对数据文件进行设置,使其在数据库空间用完的情况下进行自动扩展。
一个表空间(数据库存储的逻辑单位)可以由一个或多个数据文件组成。
3.3 控制文件
数据库控制文件是一个很小的二进制文件,它维护着数据库的全局物理结构,用以 支持数据库成功地启动和运行。创建数据库时,同时就提供了与之对应的控制文件。在 数据库使用过程中,Oracle不断地更新控制文件,所以只要数据库是打开的,控制文件 就必须处于可写状态。若由于某些原因控制文件不能被访问,则数据库也就不能正常工 作了。
每一个Oracle数据库有一个控制文件,它记录着数据库的物理结构,其中主要包 含下列信息类型:
数据库名称。
数据库数据文件和日志文件的名字和位置。
数据库建立日期。
日志历史。
归档日志信息。
表空间信息。
数据文件脱机范围。
数据文件拷贝信息。
备份组和备份块信息。
备份数据文件和重做日志信息。
当前日志序列数.
检査点信息(CHECKPOINT).
3.4 日志文件
日志文件也称为重做日志文件(Redo Log File)。重做日志文件用于记录对数据库 的所有修改信息,修改信息包括用户对数据的修改,以及管理员对数据库结构的修改。重做日志文件是保证数据库安全和数据库备份与恢复的文件。当需要进行数据库恢复时,Oracle将根据重做日志文件中的记录,恢复丢失的数据。
重做日志文件主要在数据库出现故障时使用。在每一个Oracle数据库中,至少有两个重做日志文件组,每组有一个或多个重做日志成员,一个重做日志成员物理地对应一个重做日志文件。
在现实作业系统中为确保日志的安全,基本上对日志文件釆用镜像的方法。在同一个日志文件组中,其日志成员的镜像个数最多可以达到5个。有关日志 的模式包括归档模式(ARCHIVELOG)和非归档模式(NOARCHIVELOG)两种。
日志成员镜像个数受参数MAXLOGNUMBERS
的限制;若需要确定系统正在使用哪一个日志文件组,则可以查询数据字典V$LOG
,还可以査询数据字典 V$LOGFILE
,进一步找到正在使用日志组中的哪个日志文件。
管理员可以通过语句 ALTER SYSTEM SWITCH LOGFILE
来强行地进行日志切换;若要查询数据库运行在 何种模式下,则可以查询数据字典V$DATABASE
,在数据字典V$LOG_HISTORY
中记录着历史日志的信息。
数据文件、控制文件、日志文件还有一些其他文件(如参数文件、备份文件 等)构成了 Oracle数据库的物理存储结构,对应于操作系统的具体文件,是Oracle数据库的物理载体.
3.5 表空间
表空间是Oracle数据库中最大的逻辑结构。是一个或多个数据文件(物理文件)的集合(逻辑文件)。
一个数据库通常包括SYSTEM
、SYSAUX
和TEMP
三个默认表空间,一个或多个 临时表空间,还有一个撤销表空间和几个应用程序专用的表空间。可以通过创建新的表 空间来满足需求,创建时需要决定表空间的类型。
1)表空间的类型
① 系统表空间(System tablespace)
系统表空间包括SYSTEM和SYSAUX表空间,系统表空间是所有数据库必需且自动创建的,一般存放Oracle的数据字典表及相应数据。
② 永久表空间(Permanent tablespace)
永久表空间用于保存永久性数据,如系统数据、应用系统数据。每个用户都会被分配一个永久表空间,以便保存其相关数据。除了撤销表(Undo)空间、临时表空间以外,其他表空间就是永久表空间,如系统表空间。
③ 临时表空间(Temporarytablespace)
由于Oracle工作时经常需要一些临时的磁盘空间,这些空间主要在査询带有排序 (如Group by、Order by等)算法时使用,当用完后就立即释放,对记录在磁盘区的信息不再使用,因此称为临时表空间。一般安装之后只有一个TEMP临时表空间。
④ 撤销表空间(Undo tablespace)
从Oracle 9i后,提供了一种全新的撤销空间管理方式,从而使得DBA能够很容易地管理撤销空间,即“自动撤销管理”。而与此相对应,通过回滚段进行撤销空间管理 的方式被称为“手工撤销管理"。自动撤销管理方式也称为SMU(System Managed Undo)方式,而回滚段管理方式称为RBU (Rollback Segments Undo)方式。在Oracle 11g数据库中,系统默认为启用自动撤销表空间管理方式,同时也支持传统的回滚段管理方式。
提示:在以前的版本中,Oracle 使用回滚段作为撤销存储空间.对于DBA而言,利用回滚段进行撤销空间的管理是非常麻烦的,且很难获得较高的效率。
在一个数据库中,只能采用一种撤销空间管理方式,而不能同时存在两种撤销空间管理方式。数据库采用哪一种撤销空间管理方式,是由参数UNDO_MANAGEMENT
来确定的。如果设置该参数为AUTO
,在启动数据库时使用SMU方式;如果设置为 MANUAL
,则在启动数据库时使用RBU方式。
注意:在SMU方式下,必须在数据库中创建一个撤销表空间,可以在创建数据库的同时建立一个默认的撒销表空间,也可以在数据库创建后再创建新的撤销表空间.
⑤ 大文件表空间和小文件表空间
从Oracle 10g开始,Oracle引入了大文件表空间,这是一个新増的表空间类型。该类型的出现使存储能力有了显著的增强。大文件表空间不像传统的表空间那样由多个数据文件组成。
大文件表空间(bigfile tablespace)是为了超大型数据库而设计的,如果一个超大型数据库具有上千个数据文件,则更新数据文件头部信息(如check-point)的操作可能会花费很长时间。如果使用大文件表空间,可以使用大数据文件来减少文件的数量,从而减少更新的时间。
提示:一个大文件表空间对应一个单一的数据文件或临时文件,文件可以达到 4G数据块大小。理论上当数据块大小为2KB时,大文件表空间可以达到8TB;当数据 块大小为4KB时,大文件表空间可以达到32TB,在实际环境中,这还会受到操作系统的文件系统的限制。
小文件表空间(smallfile tablespace)是之前Oracle表空间在Oracle 11g中的新名称, 是默认创建的表空间的类型。在小文件表空间中可以放置多达1022个数据文件,一个 数据库最多可以放置64K个数据文件。SYSTEM和SYSAUX表空间总是被创建为小文件表空间。
2)表空间的状态
出于不同的使用需求,对表空间设置了不同的状态。通过改变表空间的状态,可以控制表空间的可用性和安全性,也可以为相关的备份恢复等工作提供保障。表空间的状态介绍如下:
① 读写(Read-Write)状态
这是表空间的默认状态。任何具有表空间配额并拥有相关权限的用户均可读写表空间的数据。
② 只读(Read-Only)状态
如果将表空间设置为只读状态,则任何用户(包括DBA)均无法向表空间写入数 据,也无法修改表空间中的现有数据,这种限制和权限无关。
只读状态可以使表空间的数据不被修改,即仅能SELECT,而无法进行INSERT、 UPDATE或是DELETE操作。只读状态一方面对数据提供了保护,另一方面对数据库中设置静态数据非常有好处。我们可以将不能被修改的静态数据保存在一个单独的表空间中,并将这个表空间设置为只读状态,这样既能够提高数据的安全性,又能够减轻 DBA的管理和维护的负担。
③ 脱机(Offline)状态
在有多个应用表空间的数据库中,DBA可以通过将某个应用表空间设置为脱机状态,使表空间暂时不被用户访问。如果需要访问该表空间时,必须将脱机状态设置为联机状态。这样的设置增强了表空间的可用性,并提高了数据库管理的灵活性。
注意:SYSTEM表空间不能被设置为只读状态和脱机状态,因为在数据库运行过 程中始终需SYSTEM表空间数据的支持;另外,临时表空间也不能设置为只读状态.
3)表空间的作用
对Oracle数据库来说,引入表空间概念具有以下作用:
控制用户所占用的空间配额。
控制数据库所占用的磁盘空间。
可以将表空间设置成只读状态而保证大量的静态数据不被修改。
能够将一个表的数据和这个表的索引数据分别存储在不同的表空间中,也可以提高数据库的I/O性能。
可通过其将不同表的数据、分区表的不同分区的数据存储在不同的表空间 中,可以提高数据库的I/O性能,并有利于进行数据库的部分备份和恢复等 管理工作。
表空间提供了一个备份和恢复的单位,Oracle提供了按表空间备份和恢复的功能。
3.6 段
段(segment)用于存储表空间中某一种特定的具有独立存储结构的对象的所有数据,它由一个或多个区组成。
Oracle以数据区为单位为段分配空间,当段中一个数据区已满的时候,Oracle为段分配另一个数据区,段的数据区在磁盘上可能是不连续的。段和它所有的数据区都存储在一 个表空间中。
按照段中所存储数据的特征和用途的不同,可以将段分成数据段、索引段、临时段和回滚段几种类型。
1)数据段
数据段(data segment)用于存储表中的所有数据。当某个用户创建表时,就会在该用户的默认表空间中为该表分配一个与表名相同的数据段,以便将来存储该表的所有数据。若创建的是分区表,则为每个分区分配一个数据段。显然,在一个表空间中创建了几个表,该表空间中就有几个数据段。
数据段随着数据的增加而逐渐地变大。段的增大过程是通过増加区的个数而实现 的。每次增加一个区,每个区的大小是块的整数倍。
2)索引段
索引段(index segment)用于存储索引的所有数据。当用户用CREATE INDEX语 句创建索引,或在定义约束(如主键)自动创建索引时,就会在该用户的默认表空间中为该索引分配一个与索引名相同的索引段,以便将来存储该索引的所有数据。如果创建的是分区索引,则为每个分区索引分配一个索引段。
3)临时段
临时段(temporary segment)用于存储排序操作所产生的临时数据。当用户使用 ORDER BY语句进行排序或汇总时,在该用户的临时表空间中自动创建一个临时段, 排序结束,临时段自动消除。
在Oracle中,临时表空间一般是通用的,所有用户的默认临时表空间都是TEMP 表空间。当然,可以在创建用户之后,指定临时表空间。
4)回滚段
回滚段(rollback segment)用于存储用户数据被修改之前的值,以便在特定条件下 回滚用户对数据的修改。Oracle利用回滚段来恢复被回滚事务对数据库所做的修改,或 者为事务提供读一致性保证。需要注意的是,每个数据库都将至少拥用一个回滚段。
3.7 区
区(Extent)是由物理上连续存放的块构成的。区由一个或多个块组成,一个或多个区将组成段。
3.8 数据块
数据块(Block)是最小的数据管理单位,也是执行输入输出操作时的最小单位。 相应地,操作系统执行输入输出操作的最小单位是操作系统块。Oracle块的大小是操作系统块大小的整数倍,可以在安装时选择“自定义安装”来指定,也可以在CREATE DATABASE创建数据库实例时指定。其最小为2K,最大可达为64K。
在数据块中可以存储各种类型的数据,如表数据、索引数据和簇数据等。无论数据块中存放何种类型的数据,每个数据块都具有相同的结构。Oracle数据块的基本结构由 以下几个部分组成:
块头部:块头部包含块中一般的属性信息,如块的物理地址、块所属的段的类型等。
表目录:若块中存储的数据是表数据(表中的一行或多行记录),则表目录存 储关于该表的信息。
行目录:存储该块中有效的行信息。
空闲空间:数据块中尚未使用的存储空间,当向数据中添加新数据时,将减小空闲空间。
行空间:行空间是块中已经使用的存储空间,在行空间中存储了表或索引的数据。 块头部、表目录和行目录共同组成块的头部信息区。块的头部信息区中并不存放实际的数据库数据,它只起到引导系统读取数据的作用。因此,若头部信息区被损坏,则 整个数据块将失效,数据块中存储的数据将丢失。而空闲空间和行空间则共同构成块的存储区,空闲空间和行空间的总和就是块的总容量。
说明:表空间、段、区、数据块构成了 Oracle数据库的逻辑存储结构,可通过 Oracle数据库的数据字典进行查询.逻辑存储结构从逻辑的角度分析数据库的组成。 简单的说,多个数据块组成区、多个区组成段,多个段组成表空间,多个表空间组成数据库。
4. Oracle 11g的新特征(了解)
4.1 数据库管理部分
1)计划管理
计划管理(Plan Management)允许用户将某一特定语句的査询计划固定下来,无论统计数据变化还是数据库版本变化都不会改变用户的査询计划。
2)资源管理器
Oracle 11g的资源管理器(Resource Manager)不仅可以管理CPU,还可以管理I/O。在资源管理器中,用户可以设置特定文件的优先级、文件类型和ASM磁盘组。
3)访问建议器
访问建议器(Access Advisor)可以给出分区建议,包括对新的间隔分区(interval partitioning)的建议。间隔分区相当于范围分区(rangepartitioning)的自动化版本,可 以在必要时自动创建一个相同大小的分区。范围分区和间隔分区可以同时存在于一张表 中,并且范围分区可以转换为间隔分区。
4)数据库重演
数据库重演(Database Replay)这一特性可以捕捉整个数据库的负载,并且传递到 一个从备份或者standby数据库中创建的测试数据库上,然后可以通过重演测试系统调优后的效果。
提示:SQL重演(SQL Replay)特性和数据库重演特性相类似。但是只是捕捉SQL 负载部分,而不是全部负载。
5)事件打包服务
Oracle 11g提供事件打包服务。当用户需要进一步测试或者保留相关信息时,可通过这一服务将与某一事件相关的信息打包,并且用户还可以将打包信息发给Oracle支持团队得到相关的技术支持服务。
6)自动SQL优化
在Oracle 10g中,自动优化建议器可以将优化建议写在SQL profile中。而在Oracle 11g中,用户可以让Oracle自动将3倍于原有性能的profile应用到SQL语句上。其性能比较可通过维护窗口中的一个新管理任务来完成。
7)数据库的备份与恢复
Oracle11g进一步増强了数据库的备份和恢复功能,从而使得数据库具有更高的可 靠性,数据库管理员可以更轻松地达到用户的可用性预期。
8)自动诊断知识库
Oracle 11g 增加的自动诊断知识库(Automatic Diagnostic Repository, ADR)新特 性,当Oracle探测到系统发生重要错误时,会自动创建一个事件(incident),并且捕捉 到和这一事件相关的信息,同时自动进行数据库健康检査并通知DBA。用户还可以将相关信息打包发送给Oracle支持团队获得事故诊断和技术支持。
9)自动内存优化
在Oracle 9i中,弓|入了自动PGA优化;Oracle 10g中,又引入了自动SGA优化。 到了 Oracle 11g,所有内存可以通过只设定一个参数来实现全表自动优化。只要设置 Oracle有多少内存可用,就可以自动完成对PGA、SGA和操作系统进程等进程的内存分配。当然也可以通过设定最大、最小阈值的方法来设置可用内存的大小,AMT (自动维护任务)可以同样优秀地完成内存的优化任务。
另外,Oracle 11g还提供了一种新的顾问软件——数据恢复顾问,该软件可以自动调査问题、智能地确定恢复计划并处理多种故障情况,从而可以极大地缩短数据恢复所需的停机时间。
4.2 PL/SQL部分
PL/SQL是一种过程化编程语言,它主要用来编写包含SQL语句的程序,在Oracle 11g中其新功能主要体现在如下几个方面:
1)正则表达式的改进
在Oracle 10g中,引入了正则表达式。这一特性大大方便了开发人员。Oracle 11g 中,再次对正则表达式函数进行了改进,使该功能得到了进一步的增强。
2)新SQL语法
在调用某一函数时,可以通过"=>"符号来为特定的函数参数指定数据。而在Oracle 11g中,在SQL语句中也可以支持这样的语法。例如,
select f(x=>6) from dual;
3)内部单元内联
在C语言中,用户可以通过内联函数(inline)或者宏实现使某些小的、被频繁调 用的函数内联,编译后,调用内联函数的部分会编译成内联函数的函数体,因而提高函 数效率。在Oracle11g的PL/SQL中,也同样可以实现这样的内联函数了 (Intra-Unit inlining).
4)序列的使用方法
在Oracle 11g之前版本,若要将sequence的值赋给变量,则需要通过类似以下语句实现:
select seq_x.next_val into v_x from dual;
而在Oracle 11g中,不需使用SQL语句,通过如下赋值语句就可以实现:
v_x := seq_x.next_val;
5)新的PL/SQL数据类型
Oracle 11g引入了新的数据类型simple_integer,这是一个比pls_integer效率更高的整数数据类型。
6)continue 关键字
Oracle 11g在PL/SQL的循环语句中允许使用continue关键字,该关键字能够结束 当前的循环过程,使程序跳到循环体的开始语句进行下一轮循环。
7)SUPER关键字
在Oracle对象类型中,可以通过super关键字来实现继承性(这与java语言类似)。
8)触发器
在Oracle 11g中,触发器的能力得到了进一步的増强,这主要表现在两个方面:一 个是对触发器的触发顺序可以进行更好的控制;另一个是可以定义一种新的类型的触发器——混合触发器(compound trigger)。
提示:在混合触发器中可以包括BEFORE STATEMENT、BEFORE EACH ROW.、AFTER EACH ROW和AFTER STATEMENT四个部分,将四种类型的触发器集成在一个触发器中,若需要将多个类型的触发器配合使用,则采用混合触发器会显得逻辑更加清晰,而且不容易出现错误。在混合触发器中定义的变量可以在不同类型的触发语句中 使用,不再需要使用外部包存储中间结果.而且利用混合触发器的批量操作还可以提高触发器的性能。
9)对象依赖性改进
在Oracle 11g之前,如果有函数或者视图依赖于某张表,一旦这张表发生结构变化, 无论是否涉及到函数或视图所依赖的属性,都会使函数或视图变为无效。在Oracle 11g 中,对这种情况进行了调整:如果表改变的属性与相关的函数或视图无关,则相关对象状态不会发生变化。
10)细粒度权限控制
在之前的版本中,Oracle通过细粒度权限控制(Fine Grained Access Control, FGAC) 可以实现对数据库对象行级别的权限控制。在Oracle 11g中,增加了对TCP包的FGAC 安全控制。
11)结果集缓存
结果集缓存(Result Set Caching)这一特性能大大提高很多程序的性能。在OLTP 系统或OLAP系统中,常常会需要使用到大量的类似于select count(*)
这样的査询。 如果要提高这样的査询的性能,可能需要使用物化视图或者査询重写等技术。在Oracle 11g中,只需要加一个result_cache
提示就可以将结果集缓存,这样能大大提高査询 性能。同时在这种新特性下,数据是从缓存中的结果集中读取,任何其他DML语句都 不会影响结果集中的内容,从而保证性能的提高不会影响到数据的完整性。
4.3 其他部分
Oracle 11g具有更好的性能、伸展性、可用性、安全性等特性,可以方便地在低成 本服务器和存储设备组成的网络上运行。
1)自助式管理和自动化能力
Oracle 11g的各项管理功能用来帮助企业轻松管理企业网格,并满足用户对服务级别的要求。Oracle 11g引入了更多的自助式管理和自动化功能,将帮助客户降低系统管理成本,同时提高客户数据库应用的性能、可扩展性、可用性和安全性。
新的管理功能包括自动SQL和存储器微调、访问建议器、设置表和索引分区从而 提高性能、增强的数据库集群性能诊断功能。
2)增强的压缩技术
Oracle 11g数据库具有极新的数据划分和压缩功能,可实现更经济的信息生命周期管理和存储管理。它还扩展了已有的范围、散列和列表划分功能,增加了间隔、索引和 虚拟卷划分功能。
Oracle 11g数据库具有一套完整的复合划分选项,可以实现以业务规则为导向的存 储管理。它以成熟的数据压缩功能为基础,可在交易处理、数据仓库和内容管理环境中 实现先进的结构化和非结构化数据压缩。采用这种先进的压缩功能,所有数据都可以实现2x至3x或更高的压缩比。
3)大型对象存储
Oracle 11g具有在数据库中存储大型对象的功能,这些对象包括图像、大型文本对 象或一些先进的数据类型,如XML数据、医疗影像数据和三维对象。Oracle快速文件 组件使得数据库应用的性能完全比得上文件系统的性能。通过存储更广泛的企业信息并 迅速轻松地检索这些信息,企业可以对自己的业务了解得更深入,并更快地对业务做出 调整以适应市场变化。
4)增强的应用开发能力
在Oracle11g中,提供多种开发工具供开发人员选择,它提供的简化应用开发流程 可以充分利用其关键功能。这些关键功能包括客户端高速缓存、二进制XML存储、XML 处理以及文件存储和检索。
另外,Oracle11g还具有新的Java即时编译器,无需第三方编译器就可以更快地执 行数据库Java程序:还为Oracle平台提供了基于.NET应用开发的支持,实现了与Visual Studio 2005的本机集成;还有能够与Oracle快捷应用配合使用的Access迁移工具;SQL Developer开发组件可以轻松建立査询,以快速编制SQL和PL/SQL例程代码。
5)数据加密
Oracle11g在安全性方面也有很大提高,这是由于它具有更好的数据加密能力。同时,Oracle 11g数据库具有表空间加密功能,可用来加密整个表、索引和所存储的其他数据,存储在数据库中的大型对象也可以加密。
6)数据库修复建议器组件
数据库修复建议器(Database Restore Advisor)可以在错误诊断和解决方案实施过 程中指导DBA进行合理的故障诊断与修复。