1.读一致性
Oracle提供的读完整性包含以下特性:
1.保证在一个时间点上,用户通过查询语句得到的数据是一致的,且语句执行期间数据不会改变(语句级的读完整性)
2.保证数据库中读数据的用户无需等待正在读或写相同数据的用户。
3.保证数据库中写数据的用户无需等待正在读相同数据的用户。
4.保证在并发事务中写数据的用户只需等待正在写相同数据行的用户。
为了维护多版本数据一致性模型,当一个表的数据被更新(写)的同时也在被查询(读)时,Oracle必须创建一个维持读完整性的数据集。当更新发生时,被更新数据的原始值被记录在数据库的undo records中。在事务中的更新操作没有被提交之前,用户查询正在被修改的记录时只能看到她们的原始值。Oracle结合SGA中以及撤销记录中的信息为查询表数据的用户构建了一个维持读完整性的视图[此视图非彼视图]。
2.各种锁机制
Oracle提供了独有的非扩散行级锁(non-escalating row-level locking),只会锁定正在被更新的唯一行。因为Oracle将锁信息存储在每个数据行内。
包括自动锁和手动锁
3.静默数据库
有时数据库管理员需要让数据库运行在没有非数据库管理性操作的环境中,也就暂时拒绝与数据库管理无关的并发操作,如事务、查询、PL/SQL语句等。提供这种隔离的方法之一是先关闭数据库,然后在限制模式下重新打开。管理员也可以将数据库置于静默状态 (quiesced state)以避免打扰普通用户操作。在静默状态下,数据库管理员可以安全的执行需要和非DBA用户的并发操作相隔离的操作。
4.Real Application Clusters
一个实时应用集群(Real Application Clusters,RAC)系统中包含了运行在集群内不同计算机上的多个Oracle实例,这些实例间通过互联的方式进行通信。RAC系统中的各个节点通过集群管理软件访问位于共享磁盘上的共享的数据库。RAC系统聚合了集群中互联的多个计算机的处理能力,提供了系统冗余能力、接近线形的可 扩展性、以及高可用性。RAC系统对OLTP [OnLine Transaction Process]或数据仓库(data warehouse)系统都有显著的好处,各种系统和应用都能有效的利用RAC环境。
在RAC环境中,当数据处理需求增长时,用户可以轻易地使应用的处理能力扩大而无需改变程序代码。当用户向RAC环境中加入计算节点、存储等资源后,RAC可以将新资源融入整体系统,从而超越每个单独组件的限制,形成更大的处理能力。
5.调度器
为了简化管理任务,同时支持复杂多样的调度需求,Oracle在 DBMS_SCHEDULER 包中提供了一套函数、过程。这套函数被统称为调度器,她们可以在PL/SQL程序中调用。
调度器让数据库管理员和应用开发者控制数据库系统中各种任务在何时何地执行。例如,数据库管理员可以调度、监控备份之类的数据库维护作业,或需要在夜间执行的数据仓库抽取和加载任务。
6.数据库资源管理器
数据库资源管理器(Database Resource Manager)则通过数据库系统内的调度来控制资源在不同会话(sessions)间的分配。通过控制会话运行及运行时长,数据库资源管理器可以确保资源的分配符合预定的资源计划,进而满足业务处理能力的要求。
7.抽取,转换,加载(ETL)
用户必须定期向数据仓库加载数据,以保证数据仓库能够有效地支持业务分析。要完成加载数据,就要将数据从操作型系统中抽取并复制到数据仓库中。将数据从源系统抽取后放入数据仓库的过程通常被称为ETL,即抽取(extraction),转换(transformation),加载(loading)的缩写。
8.物化视图
物化视图(materialized view)可以将数据查询结果保存在一种特殊的方案对象 (schema object)中。常规的视图并不包含数据,也不占用存储空间,物化视图与之不同,她储存了基于其它表或视图的查询结果。物化视图的存储位置可以与她的基表在同一数据库,也可以不同。
当物化视图与她的基表位于同一数据库时,用户就可以使用查询重写(query rewrite)功能来提高查询性能。查询重写机制可以自动地在物化视图和原始表之间选择最优的方案重写用户提交的SQL语句,以便提高查询的响应时间,同时对用户透明。查询重写在数据仓库系统中格外有效
9.表压缩
为了减少磁盘和内存(主要是数据缓冲区)使用,用户可以对数据库内的表、分区表以压缩的方式存储。这有利于提升只读型操作的性能。表压缩还能提升查询的执行速度,但会轻微增加CPU的负担。
10.并行执行
当Oracle在并行模式下执行SQL语句时,多个进程同时执行一条SQL语句。如果Oracle将执行一个SQL语句的工作分配给多个进程,执行速度会超过单个进程执行的情况。这被称为并行执行(parallel execution)或并行处理(parallel processing)。