您的当前位置:首页正文

ORACLE与SQL SERVER的区别

来源:我们爱旅游
ORACLE与SQL SERVER的区别

整理人:张震

1、开放性.........................................................................................................................................2 2、可伸缩性,并行性........................................................................................................................2 3、安全性.........................................................................................................................................2 4、性能.............................................................................................................................................2 5、客户端支持及应用模式.............................................................................................................3 6、操作简便.....................................................................................................................................3 7、使用风险.....................................................................................................................................3 8、文件体系结构.............................................................................................................................3 9、存储结构.....................................................................................................................................4 10、参数文件...................................................................................................................................5 11、日志文件...................................................................................................................................5 12、控制文件...................................................................................................................................5 13、数据类型...................................................................................................................................5 14、回滚事务...................................................................................................................................6 15、操作方式...................................................................................................................................6 16、游标...........................................................................................................................................6 17容错机制......................................................................................................................................6

1、开放性

SQL Server 只能在windows 上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据量的关键业务时.

Oracle 能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。

2、可伸缩性,并行性

SQL server 并行实施和共存模型并不成熟。很难处理日益增多的用户数和数据卷。伸缩性有限。

Oracle 平行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。 如果windowsNT不能满足需要, 用户可以把数据库移到UNIX中。

3、安全性

SQL server 没有获得任何安全证书。

Oracle Server 获得最高认证级别的ISO标准认证。

4、性能

SQL Server中以页为单位或使用扩展类型以页为一单位进行空间分配而无法人工干预,当遇到频繁存储或大数据量存储时,系统将频繁进行I/O操作使工作效率低下;SQL Server多用户时性能不佳。

Oracle以块为最小存储单位,以区为单位分配空间,用户可以根据需要自己定义块的大

小,且区可以按等额或递增进行分配,这可以大大减少系统的I/O操作提高数据库的性能;ORACLE性能最高, 保持windowsNT下的TPC-D和TPC-C的世界记录。

5、客户端支持及应用模式

SQL Server C/S结构,只支持windows客户,可以用ADO,OLEDB,ODBC连接. Oracle 多层次网络计算,支持多种工业标准,可以用ODBC, JDBC,OCI等网络客户连接

6、操作简便

SQL Server 操作简单,但只有图形界面.

Oracle 较复杂, 同时提供GUI和命令行,在windowsNT和unix下操作相同

7、使用风险

SQL server 完全重写的代码,经历了长期的测试,不断延迟,许多功能需要时间来证明。并不十分兼容早期产品。使用需要冒一定风险。

Oracle 长时间的开发经验,完全向下兼容。得到广泛的应用。完全没有风险。

8、文件体系结构

ORACLE的文件体系结构为:

参数 .ORA (参数文件) 数据文件 .DBF (真实数据)

日志文件 .RDO (用来做灾难性的数据备份)

控制文件 .CTL (将数据库的物理文件映射到了数据字典中的逻辑表空间和连机

重做日志文件上去,确保数据的一致性)

SQL SERVER的文件体系结构为: .MDF (主要数据文件) .NDF (扩展文件,可以有多个)

.LDF (日志文件,可以有多个,存放在联机重做日志数据,这里的日志文件有一个缺点就是如果日志文件已填小巧玲珑的话,SQL将自动停止运行并等待人工干预,所以要经常监控日志的情况保证系统的稳定运行)。

9、存储结构

ORACLE有以下基本表空间:

SYSTEM表空间(存放数据字典和数据管理自身所需的信息) UNDOTBS回滚表空间 TEMP临时表空间 TOOLS交互式表空间 USERS用户默认表空间 INDX索引表空间

不同的数据分别放在不同的表空间(数据字典与真实数据分开存放);基表(存储系统

参数信息)是加密存储,任何人都无法访问,只能通过用户可视视图查看。

SQL SERVER有五个基本数据库: master(数据字典) mode(存放样版) tempdb(临时数据库)

msdb(存放调度信息和日志信息) pubs(示例数据库)

真实数据与数据字典存放在一起;对系统参数信息无安全机制。

10、参数文件

Oracle的参数文件init.ora是可调的,既我们可以根据数据库的规模调整Oracle对系统资源的使用情况,以达到最合理的资源分配,让Oracle达到最佳的性能。

SQL Server的配置参数是内定的不可调整,它对系统资源的分配是固定的,不受拥护控制,因此无法同时处理大量用户的需求,这限制了它只能作为中,小型数据库。

11、日志文件

Oracle的日志默认有3个,先写入1号日志,满了后再写入2号日志,2号满了再写入3号日志,3号满了后Oracle将自动备分1号日志的内容,然后清空后写入新的日志信息,且Oracle的日志有多路复用功能,我们可以为日志创建多个镜像,把相同的日志信息同时写入多个日志文件中,这样可以防止磁盘损坏造成的数据丢失。

SQL Server对每个数据库只能分配一个日志文件。且当日志填满后,日志将停止工作,等待人工干预,而无法自动重用。

12、控制文件

Oracle的控制文件记录了数据库文件的物理位置和有效性,在每次打开Oracle系统都将自动对数据进行验证,查看其有效性,防止数据的丢失,这体现了Oracle对数据管理的严密性。

SQL Server无此安全机制,只用在使用到了数据库的信息后,系统才去查找数据是否存在。

13、数据类型

ORACLE的数据类型比较复杂,有基本数据类型,衍生型,列对象型,表对象型,结构体型

SQL中的数据比较简单,只有一些简单的基本数据类型无法提供事务操作。

14、回滚事务

在SQL中如果一个事务从开始执行到结束时了错了,它就会回滚到开始之前; 在ORACLE中它采用的是定点回滚,就是该事务函数化和精确错误定位,用savepoint标记保存点,用Rollback标记回滚错误的保存点。

15、操作方式

SQL中为string1+string2;ORACLE中的字符串连接为 string1‖string2。

集合操作:在SQL中只有UNION(并操作);ORACLE中包含MINUS(差操作)、INTERECT(交操作)、UNION(并操作)。

索引:SQL的索引分为聚集索引和非聚集索引,还包括全文索引; ORACLE的索引包括:B+树索引,Bitmap位图索引,函数索引,反序索引,主键索引,散列索引,本地索引。

循环语句:在SQL中循环只有WHILE一种这用起来不灵活,在ORACLE中有多种循环(LOOP循环、WHILE循环、FOR循环)。

16、游标

在SQL中游标的使用比较复杂,不能同时打开一个以上的游标,因为它只有一个全局变量@Fast_statues而且声明游标也麻烦,关闭游标时也不清除内存的

ORACLE中游标是以提高速度全部统一的单项游标,可以允许多用户异步读取,而且声明比较简单,就一句declare cursor 游标名is select 语句就可以了。

17容错机制

SQL中的错误机制比较复杂,没有提供错误描述;

ORACLE中容错类型有三种,一个是预定义错误,一个是非预定义错误,一个是用户自定义,其中在自定义错误中它有两个是在SQL中不有的,那就是SQLCODE 错误号、SQLERRM错误描述。

因篇幅问题不能全部显示,请点此查看更多更全内容