oracle版本说明及主要特性

来源:互联网 发布:市妇科医院网络咨询 编辑:程序博客网 时间:2024/04/30 00:36
     1983年3月,oracle第3版,引入事务的概念,即SQL要么成功、要么失败,取决于事务是否提交;同事还引入了另一关键特性--写不阻塞读(通过回滚段中的数据实现查询和回滚事务,避免了读锁定),对于大访问量、高并发的应用,这点很重要。

     1984年10月,oracle第4版,增加了读一致性(Read Consistency)的特性(即一个会话修改数据时,只要不提交,其他的会话就看不到这项修改,要记住这个概念,这是Oracle极重要的特性之一)。

     1985年4月,oracle第5版,是首批支持Client/Server模式运行的RDBMS产品。5.1版,新增了分布式查询功能,即一次查询、访问存储于多个位置上的数据。

     1988年7月,oracle第6版,引入了行级锁(Row-Level Locking,之前最小粒度是表级锁),与延迟写入(Deferred Writes)功能,同时提供PL/SQL(程式化的编程语言,比如写的过程、函数都是通过PL/SQL实现。注意这个版本只是开始提供PL/SQL语言的支持,但还没有包、函数、过程、触发器等特性),并开始提供对联机热备份的支持,这样数据库执行备份时就不再需要停机。oracle6.2版首先在DEC VAX平台上引入了Oracle Parallel Server(OPS)的选项,即RAC的前身(另外,Oracle公司从未正式对外发行6.1版)。

     1992年6月,oracle第7版,较重大的修改:1、基于成本的优化器(CBO),即Oracle数据库在执行查询前,会自动根据查询对象的统计信息进行计算,生成最佳的执行计划(理论上的最佳),而之前都是基于规则(RBO)的优化器来生成执行计划。2、完整性约束(包括主键、外键、CHECK约束等)。3、支持包、函数、存储过程、触发器的创建和用户自定义函数。4、可用于数据复制的Snapshot(Materialized View的前身)。5、同时易用性方面也作了许多改进,引入了SQL*NET工具并增强了管理功能。
     1994年5月,Oracle7.1版,增加下列重要特性:1、引入对ANSI/ISO SQL92标准的支持。2、推出高级复制的特性(Advanced Replication)。3、引入Snapshot刷新组。4、引用DBMS_SQL包来处理动态SQL。5、允许将表空间置为只读状态。
     1995年5月,Oracle7.2版,增加下列重要特性:1、数据文件支持自动扩展,或重置大小。2、支持手动收缩回滚段。3、FROM子句开始支持子查询。4、CREATE TABLE AS语句开始提供并行支持。
     1996年2月,Oracle7.3版,增加下列重要特性:1、开始提供Standby Database的支持(即Data Guard的前身)。2、开始提供对位图索引(Bitmapped Indexes)的支持。3、引入全文检索(Context)的特性。4、引入空间数据库(Spatial Data)的特性。5、提供方便收集Oracle运行时的跟踪信息,有助于性能调试。

     1997年6月,Oracle8版,引入Object Relational Database(ORDBMS)的概念,即所谓的面向对象的关系型数据库管理系统。比如引入对索引组织表的支持(Index Organized Table),备份恢复特性的功能也有所提升,开始支持表空间时间点恢复,增量备份等功能,RMAN也是从这一版本开始提供。具有同时处理大量用户和海量数据的特性,也为支持Internet、网格计算(后来的i和g)等奠定了基础。

     1999年2月,Oracle8i的8.1.5版,添加了大量为支持Internet而设置的特性,比如iFS、SQLj、WebDB、interMedia等特性,以及与Oracle的Java开发工具Jdeveloper的集成应用等。同时,本地也完整集成了一个java运行时环境,内部引入了对java存储过程的支持,作为对PL/SQL标准过程的补充;在数据库管理方面引入了Log Miner特性(一种可用来读取Redolog的工具,Oracle后续版本中提供的一些高级特性,如逻辑Standby、Streams等也都是借助类似方式实现);分区功能也有所增强,如提供了对Hash分区和复合分区的支持,以及一些分区的管理操作;传输表的特性也是从这一版本开始提供;同时本地管理表空间也首次出现于这一版本,但表空间在创建时默认仍然是字典管理方式;其操作的易用性较之前版本有非常明显的提升主要体现在Oracle EM使用上;高级复制的特性已经非常完善;Standby的特性也基本成熟,备库已经支持自动应用,并且在暂停应用时能够以只读模式打开,当作查询服务器来分担主库压力。

     2001年6月,Oracle9i版,也是一个划时代意义的版本,因为之前版本中提供的很多重要特性均是在这一版本中被转正,比如OPS正式更名为RAC,Standby被更名为Data Guard,LMT(Local-Managed Tablespace,本地管理表空间)试用多年,也终于在这一版本中被改为创建表空间的默认属性,还有很多其他细微但非常实用的修改,简直数不胜数,如SPFILE--服务器端的初始化参数的引入(改动虽小,影响甚大,当然都是积极层面的影响),系统管理的UNDO表空间(System Managed Undo Tablespace)的引入(邮箱提升系统性能,极大限度避免ORA-1555),内存管理方面引入了PGA_AGGREGATE_TARGET参数,用来自动分配PGA内存,有效提升性能。Flashback Query也是在这一版本中首次出现,通过该特性能够查询UNDO表空间中尚未被覆盖的UNDO数据,也可以作为数据恢复的一种补充手段。
     2002年5月,9iR2版,又提供了一种新的数据复制特性:流(Streams),期望是用来替换之前的高级复制,同事Data Guard也提供了一种新的Standby方式,逻辑Standby。

     2004年2月,10g版,网格计算相当于将整个信息化的各个物理和逻辑的组成部分(如存储、数据库、应用程序等)定义成虚拟化的服务,由Grid Control(Oracle公司提供的控制软件)统一控制。10g进行了太多实用行革新,比如在内存管理方面,我们知道9i时引入PGA_AGGREGATE_TARGET,用来自动分配PGA内存,在10g中引入了一个SGA_TARGET,用来自动分配SGA内存,而到了11g,Oracle又提供了一个新的参数MEMORY_TARGET,能够完全自动地管理整个数据库内存。

     2007年7月,11g版,提供了很多激动人心的特性。比如RAT(Real Application Testing)终于步入实用阶段,该特性运行你将生产环境中的真实负载记录下来,拿到测试库中重演(最佳搭配自然是Standby数据库),这将有助于测试某些应用程序修改后对数据库的真实影响;结果集缓存(Result Cache)则能更有效地利用内存,其实质相当于将查询的结果集保存于内存中,当再有新的相同查询需求时,就不需要再解析、执行、读取I/O等操作,直接就可以从内存中获得查询结果,大大提高查询效率(如果应用的好的话);以及高级压缩(Advanced Compression)等。一些原有特性在功能上也增强了,比如分区方面,自5.0以来无数用户期待的interval分区终于推出(Oracle将根据设定的条件自动添加新分区,再也不需要DBA自己写脚本来管理分区了);Data Guard方面,物理Standby终于能够在只读打开模式时应用REDO数据,实用性和可用性均大增;内存管理方面,新提供的MEMORY_TARGET参数能够更有效地管理Oracle内存空间,其他还包括压缩特性的增强,SQL、PL/SQL方面新增加了数据类型和更强大的编译方法等。





原创粉丝点击