SQLserver和Oracle的优劣
随着信息技术的飞速发展,数据处理不仅在数量上要求越来越大,而且在质量上也要求越来越高。Oracle数据库在大多数企业中受到广泛使用,而SQL Server数据库也因为和Windows的联系,在企业中的使用也是非常广泛。这边说Oracle数据库有如此这般功能,那边又说SQL Server这些个那些个特性,各持己见。如今大型关系型数据库多数单位都使用的是Oracle数据库,Oracle数据库的安全理涉及很多方面,比如控制数据的一致性和并行性,建立不同安全域的用户组与用户,以及不同客户连接的不同权限,管理员对不同用户的角和权限的控制,建立足够有效的审计安全策略等。SQL Server是一个关系数据库管理系统,它
是建立在Windows的可伸缩性和可管理性之上,提供功能强大的客户/服务器平台,高性能客户/服务器结构的数据库挂历系统可以将VisualBasic,VisualC++等众多语言作为客户端开发工具,而将SQL Server作为存储数据的后台服务器软件,随着SQL Server产品性能的不断扩大和改善,已经在数据库系统领域占有非常重要的地位。下面我们将从以下几方面对SQL Server和Oracle的优劣进行对比:
1.开放性:
SQL Server:SQL Server只在Windows上运行,没有丝毫的开放性,Microsoftoracle选择数据库这种专有策略的目标是将客户锁定到Windows环境中。由于SQL Server紧密的捆绑在Windows平台上,所以,只有随着Windows操作系统可靠性、开放性以及性能的改善,SQL Server的开放性和可靠性才能进一步提高,因此操作系统的系统的稳定对数据库是十分重要的。windows9x系列产品是偏重于桌面应用,nt server只适合中小型企业。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据量的关键业务时。
Oracle:能在所有主要的平台(其中包括Windows)上运行,并且完全支持所有的工业标准,所以,客户可以利用很多种第三方应用程序、工具、网关和管理实用程序。Oracle采用开放策略,它使得客户可以选择一种最适合他们特定需要的解决方案。
2.可伸缩性和并行性
SQL SERVER :以前版本SQL Server并行实施和共存模型并不成熟。很难处理大量的用户数和数据卷。伸缩性有限。新版本性能有了较大的改善,在Microsoft Advanced Servers上有突出的表现。
ORACLE:并行服务器通过使一组结点共享同一簇中的工作来扩展window nt的能力提供高可用性和高伸缩性的簇的解决方案。如果windowsNT不能满足需要用户可以把数据库移到UNIX中。Oracle的并行服务器对的种UNIX平台的集机制都有着相当高的集成度。
3.安全性
SQL SERVER: Microsoft Advanced Servers获得最高的C2级别的安全认证标准,服务器平台的稳定性是数据库的稳定性的基础,新版本的安全性有了极大提高。
ORACLE:获得最高认证级别的ISO标准认证。
在业界,普遍认为Oracle数据库的安全性要比SQL Server数据库高。
4.性能
SQL SERVER:老版本多用户时性能不佳,新版本的性能有了明显的改善,各项处理能力都有了明显的提高。
ORACLE:性能最高,保持开放平台下的TPC-D和TPC-C的世界记录。
选择数据库产品,首先要考虑数据库产品的性能,到底那种数据库更快?这其实是一个很难回答的问题,因为存在许多不定因素,包括处理类型、数据分布以及硬件基础设施等。一些经验表明在长时间运行大量事务方面Oracle数据库要优于SQL Server,但在集技术等方面,SQL Server比Oracle数据库要好一些。
5.客户端支持及应用模式
sql server:c/s结构,只支持windows客户,可以用ado,dao,oledb,odbc。连接SQL Server在默认情况下自动为客户端连接创建线程,当有非常多的客户连接时,SQL Server可以使用线程池管理多会话,这类似于Oracle的共享服务。
Oracle:多层次网络计算,支持多种工业标准,可以用odbc,jdbc,oci等网络客户连接。Oracle为客户端开启会话有两种方式:共享服务和专用服务。在专用服务情况下,为连接请求创建新进程(Unix环境下是Process,Windows下我想应该是Thread吧);共享服务情况下,将客户请求交给Dispatcher,由Dispatcher安排多客户的作业。
6.操作简便
sql server:操作简单,但只有图形界面.
Oracle:较复杂, 同时提供gui和命令行,在windowsnt和unix下操作相同
7.使用风险
sql server:完全重写的代码,经历了长期的测试,不断延迟,许多功能需要时间来证明。并不十分兼容早期产品。使用需要冒一定风险。
Oracle:长时间的开发经验,完全向下兼容。得到广泛的应用。完全没有风险。
8.存储结构
SQL Server的表有两种方式组织数据的物理存储,一种是无序的堆组织,这Oracle是类似的;另一种是由聚簇索引决定数据排序方式,Oracle也可有索引组织方式,但不同于SQL Server,它依键排序数据,不增加一个索引用于聚簇,不会有额外的开销。此外,Oracle的聚簇表是多表存储在相同段上,像SQL Server的混合区可以包含不同表的页,但Oracle的聚簇表是一组含有相同列的表可以储存在相同的块中,聚簇表的可以有索引或Hash方式组织数据。
Oracle数据库存储方式有OS文件、裸分区、ASM等,SQL Server的数据库存储只能是系统文件。Oracle数据库包含表空间,表空间可以使用多个文件存储数据,表空间就类似于SQL Server中的文件组。区是物理连续上连接的存储空间,区中包括最小I/O单位——块(Oracle)或页(SQL Server)。但SQL Server页大小是8KB,区包含8个页;Oracle不同表空间可以有不同的块大小,区的大小和保护块的数量也不固定。SQL Server的页由一个数据库对象独占,物理储存的数据库对象只有索引和表两种;而Oracle中的段由数据库对象定义,且其存储的对象复杂得多,有表段、索引段、回滚段、临时段等等,所以在一个聚簇段中的块可能被多个表使用。
总而言之,从以上这些方面看来,不同的数据库有不同的优劣,无论我们掌握哪一种,对我们来说都是一笔宝贵的财富,因此,我们要好好把握。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论