1.3 挫折
1988年7月Oracle公司推出了6.0版本,这一版中最重要的改进是引入了行级锁(Row-Level Locking,之前最小粒度也是表级锁),与延迟写入(Deferred Writes)功能,同时,这一版还开始提供PL/SQL(程式化的编程语言,比如写的过程、函数等都是通过PL/SQL实现。注意这个版本只是开始提供PL/SQL语言的支持,但还没有包、函数、过程、触发器等特性),并开始提供对联机热备份的支持,这样数据库执行备份时就不再需要停机。综合来看,Oracle可说是当时最强大的数据库软件,不过,由于6.0版本这个先天不足的早产儿出生,Oracle遭遇了历史最为黑暗的一段发展时期。
在这里,我们不得不再次感叹Larry Ellison非凡的口才,新版本推出后很多用户都是迫不及待地开始使用。但是,由于Oracle内部测试流程极其简单,新版本上市前没有充分地测试,事实上这个工作反而是由用户帮着完成(使用过程中被动测试),因此,一旦面世,问题瞬间就像山洪般暴发了。这段灰暗的岁月,一直到6.0.27版本发布,产品质量趋于稳定后才告结束(从版本号上看,已经至少经历了27次修改)。有意思的是,这期间用户流失很少,因为大多数人不想重写相关应用程序,而且对于大型数据库而言,更换数据库软件费用极其高昂,因此只能依赖Oracle(目前也还是这样,上了贼船,再想下来可就难了)。还有一点要注意,Oracle 6.2版首先在DEC VAX平台上引入了Oracle Parallel Server(OPS)的选项,即RAC的前身(另外,Oracle公司从未正式对外发行6.1版)。
软件本身质量问题只是一方面,更严重的问题是Oracle公司内部管理混乱。从1977年创立到1990年,Oracle销售额几乎都保持了每年1倍以上的增长,但公司的财务和销售管理十分混乱,销售人员为了完成任务得到提成,大量签订无法收款的合同,甚至有人弄虚作假,合同执行情况也无人过问,以至于现金流量是负值。Larry Ellison高薪聘请高级管理人员整顿公司时发现,1990年第三财政季度有1500万美元的销售合同无法执行。这样一来,季度销售额虽达到创记录的2.36亿美元,但利润只增长了1%,距离预期相差甚远。消息公布第二天,Oracle的股票从25.38元跌到了17.5元,损失了30%的市值。
为了度过危机,Oracle解雇了10%的员工。但随后的两个季度情况变得更糟,Oracle股票价值一落千丈,10月底的收盘价仅为5.38美元,公司的前景暗淡甚至面临破产。在最艰难的时期,Ellison几乎放弃不变卖股票的信心,事实上他一度是靠贷款维持自己的奢侈生活(要知道,春天的时候,Ellison拥有的股票价值还近10亿美元,但入了冬之后市值就只剩下1.6亿美元)。当然,Ellison最终还是没有卖掉自己手里的股票,这也足以证明他确实热爱自己的公司并一直怀有信心。
1991年,Oracle中国公司正式成立,公司名称为“北京甲骨文软件系统有限公司”。从这天开始,如果你碰到某人自我介绍说“我是甲骨文的”,千万别以为是某研究机构出来的,或者是碰到了现实版的穿越时空的人物,对方有可能只是某家数据库软件公司的外企机构职员。
1.4 兴旺
1992年6月,Oracle终于发布了第7版,这是一个功能完备的关系型数据库管理系统,让Ellison有了真正的王牌(好几年前,Ellison就已经在宣扬此版本中的一些特性)。更为聪明的是,第7版在上市前多方面听取了用户意见,并重点进行了大量而细致的测试,避免了重蹈上一版本的覆辙。此外,这一版及后续升级的小版本中增加了很多对后来版本影响巨大的特性,下面列举几个三思认为较重大的修改:
基于成本的优化器(CBO),即Oracle数据库在执行查询前,会自动根据查询对象的统计信息进行计算,生成最佳的执行计划(理论上的最佳),而之前都是基于规则(RBO)的优化器来生成执行计划。在后续的几个版本中,Oracle工程师不断对这一优化器进行改进并最终在Oracle 9i版本中取代RBO成为系统默认优化器。
完整性约束(包括主键、外键、CHECK约束等)。
支持包、函数、存储过程、触发器的创建和用户自定义函数。
可用于数据复制的Snapshot(Materialized View的前身)。
同时易用性方面也作了许多改进,引入了SQL*NET工具并增强了管理功能。
接下来,Oracle 7.1在1994年5月推出,主要增加下列重要特性:
引入对ANSI/ISO SQL92标准的支持。
推出高级复制的特性(Advanced Replication)。
引入Snapshot刷新组。
引用DBMS_SQL包来处理动态SQL。
允许将表空间置为只读状态。
1995年5月推出Oracle 7.2,主要增加下列重要特性:
数据文件支持自动扩展,或重置大小。
支持手动收缩回滚段。
FROM子句开始支持子查询。
CREATE TABLE AS语句开始提供并行支持。
1996年2月再次推出Oracle 7.3,主要增加下列重要特性:
开始提供Standby Database的支持(即Data Guard的前身)。
开始提供对位图索引(Bitmapped Indexes)的支持。
引入全文检索(Context)的特性。
引入空间数据库(Spatial Data)的特性。
提供方式收集Oracle运行时的跟踪信息,有助于性能调试。
注:上述列举的持性内容参考自http://www.orafaq.com/wiki/Oracle_7。
在Oracle整个历史中,第7版拥有非常重要的意义。从上述增加的重要特性中也可看出,N多现在非常知名的高级特性,其前身均是从这个版本开始尝试提供。而Oracle公司内部经过这几年管理上的加强,也逐渐步入健康发展的轨道。
到1996年年底,Oracle公司的年销售额已经达到了42亿美元,但是Larry Ellison并不满足,同样是靠软件吃饭的公司,眼瞅着几乎同时起步的Bill Gates雄据全球首富宝座,而Oracle公司反而在经历了最初的辉煌之后渐渐沉默(甚至几乎彻底完蛋)。你让我不爽,我就折腾你!Ellison在打击对手方面可谓绝顶高手,在1995年巴黎举行的欧洲信息技术论坛会议上,Larry Ellison介绍了网络计算机(Network Computer,NC)的概念:配置简单,充分利用网络资源的低价电脑,没有软盘和硬盘,因此不需要操作系统,其重点在于不需要微软的操作系统,只要打开电源用浏览器连网,就可以获得信息。不过Bill Gates在随后的发言中表示,他认为Ellison提出的网络计算机没有任何价值,只是大型机哑终端的翻版。
这一天的胜利最终仍然属于Ellison,作为一个如此拉风的男人,无论走到哪里都是众人瞩目的焦点,就好像黑夜中的萤火虫那样炫目!关于网络计算机的报道出现在所有报刊的主要版面上,Oracle公司借助这一事件,不但吸引了足够多的人的眼球,也展示了其网络的巨大信心。大众对于网络计算机的评价不一,大型公司和机构对网络计算机有所认同,起码其管理成本应该能降低不少;但反对者也不是没有,微软就更是表现得不屑一顾(老板都发话了,底下的人也得赶紧出声响应啊),微软负责技术的副总裁就表示:“人们想要电脑提供越多的功能,而不是越少。网络计算机根本不值一提”。
没过多久Oracle就联合IBM、Sun、Apple和Netscape制定了网络计算机的标准。微软一看情形不对,也迅速发表了一个名为SIPC(Simply Interactive Personal Computer)的标准进行反击。SIPC基本上和网络计算机一样,只有一点不同:它需要用Windows操作系统。而事实上,直到现在,也没有一台真正的网络计算机面世,随着AMD和英特尔的竞争,个人计算机价格不断下降已经成为电脑行业趋势(千万不能忽视摩尔定律),网络计算机已经失去了能提供足够养分的土壤。
1997年6月,Oracle推出了第8版,从这一版本开始引入Object Relational Database(ORDBMS)的概念,即所谓的面向对象的关系型数据库管理系统。在功能方面也增强不少,比如引入对索引组织表的支持(Index Organized Tables),备份恢复特性的功能也有所提升,开始支持表空间时间点恢复,增量备份等功能,RMAN也是从这一版本开始提供(关于备份恢复的内容我们将在第三部分详细介绍)。同时,这一版本开始具有同时处理大量用户和海量数据的特性,也为支持Internet、网格计算(后来的i和g)等奠定了基础。如果与7.0之前的版本相比,这个版本也称的上是一款非常不错的产品,可惜它被夹在经典的第7版和更加经典的Oracle 8i之间,其光芒必然要被掩盖,只有当你我回顾历史的时候才能够记起,在8i之前,也曾有过一个版本号叫做8的Oracle产品!
=================================================
全书目录:http://space.itpub.net/7607759/viewspace-622699
样书预览:http://space.itpub.net/7607759/viewspace-622515
马上购买:http://www.china-pub.com/196252
链接:http://space.itpub.net/7607759/viewspace-623287