在微软发布的”数据库管理需要的10大特性” ( “Top10 Features for Database Administration”) 中, 几乎所有的特性都在 Oracle 8i 或更早的版本中已经实现。
SQL Server 2005 的新特性:
l Database snapshot isolation
Snapshot isolation 提供了一种机制,用来一个会话中的数据更改过程中,避免另一个并发会话中只读操作处于阻塞等待。Snapshot isolation又叫Row Versioning, 因为SQL Server提供了两个版本的正在改动的行,改动前的行和正在改动的行。然而,SQL Server的这个新特性是以牺牲性能为代价。而Oracle的多版本读一致性(MVRC)的出色实现使得并发性比 SQL Server 好得多。
l Database snapshot
这一功能使管理员可以生成和使用数据库的稳定的只读视图。数据库快照可提供这种功能,而不必创建数据库或存储要求的完整副本。SQL Server的这一功能需要手工创建, 而不像 Oracle 闪回(flashback)技术,可以自动完成。
l Database mirroring
数据库镜象能够不断地将事务日志从主服务器写到备份服务器。当主系统失败的情况下,应用程序可以立即通过备用服务器连接到数据库,不用等待恢复工作的完成,因为镜象服务器是完全同步的。Oracle Data Guard 可以实现相同的功能。SQL Server的备用数据库在切换前是不能被访问的,而在Oracle的备份数据库上可以进行只读操作,例如报表查询,提高了资源利用率。
Oracle Database10g 标准版提供了丰富的特有功能,而在SQL Server 2005中没有对应的功能:
l Oracle Logminer
提供提取数据库上的所有DML/DDL历史操作的功能,用于审计,复制和创建回滚脚本。这意味着可以提取旧的redo log能够看到整个事务协议。 SQL Server 2005中没有对应的功能,尽管第三方工具如Lumigent Log Explorer 能够提供对应的功能。
l Flashback Query
用于安全或人为错误导致灾难的恢复。利用Flashback Query可以访问数据库对象的快照,比如某个时间点的表内容。
l Automatic Workload Repository
Oracle10g提供了丰富的视图,这些视图自动保存根据负载类型和等待事件来划分的历史统计数据,用于分析性能问题。比如你在24小时之内发现系统某一时刻异常繁忙,或响应时间很长,可以立即利用这些视图进行分析,而不需要打开任何在线统计机制。由于这一机制由Oracle内部机制实现,对性能的影响非常小。
l Object Oriented Featured
面向对象功能,例如 objects和vararrays。
l Optional compilation of PL/SQL to native binary (shared library) via C compiler
目前多数的开发是基于虚拟机,比如java 和CRT,然而native code 能够提供更好的性能。从9i开始,Oracle提供了将 PL/SQL 编译成native code的选项用以提高性能。