当前位置:首页 > 技术与方案 > 数据库技术相关

Oracle与SQL Server对比

(2012-09-25 15:46:19)

1.Oracle为客户端开启会话有两种方式:共享服务和专用服务。在专用服务情况下,监听器为连接请求创建新进程(Unix环境下是Process,Windows下我想应该是Thread吧);共享服务情况下,监听器将客户请求交给Dispatcher,由Dispatcher安排多客户的作业。SQL Server在默认情况下自动为客户端连接创建线程,当有非常多的客户连接时,SQL Server可以使用线程池管理多会话,这类似于Oracle的共享服务。

2.Oracle的内存管理分三块:SGA、PGA、UGA;在MSDN中并没有提及怎样控制SQL Server的内存分配,只是提到SQL Server的虚拟地址空间分成缓冲池占用空间和其余空间,且SQL Server有动态内存管理机制。

3. Oracle的实例一次只能管理一个数据库,数据库在集群环境下可由多个实例管理。而SQL Server单个实例一次能管理多个数据库。Oracle数据库存储方式有OS文件、裸分区、ASM等,SQL Server的数据库存储只能是系统文件。

4. Oracle数据库包含表空间,表空间可以使用多个文件存储数据,表空间就类似于SQL Server中的文件组。区是物理连续上连接的存储空间,区中包括最小I/O单位——块(Oracle)或页(SQL Server)。但SQL Server页大小是8KB,区包含8个页;Oracle不同表空间可以有不同的块大小,区的大小和保护块的数量也不固定。SQL Server的页由一个数据库对象独占,物理储存的数据库对象只有索引和表两种;而Oracle中的段由数据库对象定义,且其存储的对象复杂得多,有表段、索引段、回滚段、临时段等等,所以在一个聚簇段中的块可能被多个表使用。

5. Oracle使用FREELIST管理可以块,通过设置PCTFREE和PCTUSED控制快在何种条件下可用;SQL Server使用GAM、SGAN记录可用页,使用PFS跟踪页的使用状况。

6. SQL Server的表有两种方式组织数据的物理存储,一种是无序的堆组织,这Oracle是类似的;另一种是由聚簇索引决定数据排序方式,Oracle也可有索引组织方式,但不同于SQL Server,它依键排序数据,不增加一个索引用于聚簇,不会有额外的开销。此外,Oracle的聚簇表是多表存储在相同段上,像SQL Server的混合区可以包含不同表的页,但Oracle的聚簇表是一组含有相同列的表可以储存在相同的块中,聚簇表的可以有索引或Hash方式组织数据

7. Oracle创建表分区会创建不同的段,SQL Server 2005通过分区方案将不同分区存储到不同的文件组。Oracle有三种分区方法,SQL Server使用分区函数。Oracle 11g中还将加入时段分区、系统分区等。

8. SQL Server的索引只有B-树,Oracle有B-树、位图、函数、位图连接和可扩展索引。

9. Oracle的重做日志与SQL Server的事务日志都使用循环写入策略,Oracle使用多个重做日志文件,SQL Server也可使用多个日志文件,但将日志文件分成多个虚拟日志,以虚拟日志为单位进行循环。

 

更多
关闭窗口 打印 
网站首页    -    联系我们    -   收藏本站    -    网站地图                                                               客户服务热线:0571-85023000
本网站所有网页信息已申请知识产权和著作权保护,版权归四海光纤公司所有,未经授权禁止任何人复制或镜像,违者必究。
公司主营:杭州光纤光缆视频会议系统,是专业的通信网络工程、视频会议系统建设专家

中华人民共和国备案号:浙ICP备10018243号