Oracle与sql Server对比- and - 博客园

.Oracle为客户端开启会话有两种方式:共享服务和专用服务。在专用服务情况下,xxx为连接请求创建新进程(Unix环境下是Process,Windows下我想应该是Thread吧);共享服务情况下,xxx将客户请求交给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也可使用多个日志文件,但将日志文件分成多个虚拟日志,以虚拟日志为单位进行循环。

=================================================================================

SQL SERVER2000与ORACLE的比较:

  1、数据库*作平台的开放性

  Oracle能在所有主要的平台(其中包括Windows)上运行,并且xx支持所有的工业标准,所以,客户可以利用很多种第三方应用程序、工具、网关和管理实用程序。Oracle采用开放策略,它使得客户可以选择一种最适合他们特定需要的解决方案。SQL Server只在Windows上运行,Microsoft这种专有策略的目标是将客户锁定到Windows环境中。由于SQL Server紧密的捆绑在Windows平台上,所以,只有随着Windows*作系统可靠性、开放性以及性能的改善,SQL Server的开放性和可靠性才能进一步提高。

  2、性能价格比

  选择数据库产品,首先要考虑数据库产品的性能,同时还关心究竟要花多少钱才能建立并运行一套Oracle或SQL Server数据库系统。这些钱不仅包含最初购置软件、硬件的费用,还包含了维护、培训费用。两家公司都宣称自己的性能价格比好,实际上,Oracle公司侧重于产品的可靠性和实用性方面,而Microsoft公司更侧重于产品价格方面。由于*作系统的原因,普遍认为SQL Server的可靠性较差,而另一方面Oracle的初始花费则相对较高,尤其是在考虑工具软件的因素时,与SQL Server免费提供工具软件相比,Oracle更显价格不菲。所以,在考虑该使用什么软件时,要根据自己的业务需求和基础设施来综合考虑。

  3、工具软件

  使数据库易于安装、使用和管理--组合在一起称为"*作简单"--是一个减少成本的关键因素。Microsoft产品具有易于使用的美誉,在很多方面也确实如此,SQL Server就得益于让人感到使用起来比较容易。SQL Server企业管理器(Enterprise Manager)是SQL Server软件的一个组成部分,给用户提供了一个集成的管理控制台来集中管理多个服务器。Oracle也由自己的企业管理器,它的性能随着版本的提高有所改善,有些方面甚至超过了SQL Server企业管理器,但它安装较为困难,有些较好的组件还需另外购买。SQL Server与Windows*作系统无缝集成, Microsoft公司总是尽可能将所有的软件功能捆扎在一起,除非用户还需要其他用处的*作软件包,否则功能已足够使用了。而Oracle公司将工具软件交给第三方软件商来开发,花费高,尤其在别人的软件免费提供的情况下,这种问题就更显突出。

4、数据库性能

  那种数据库更快?这其实是一个很难回答的问题,因为存在许多不定因素,包括处理类型、数据分布以及硬件基础设施等。一些经验表明在长时间运行大量事务方面Oracle数据库要优于SQL Server,但在集群技术等方面,SQL Server比Oracle数据库要好一些。

  各行业是出于何种考虑来选择数据库的呢?是由它的特点来决定的。这几款主流数据库的特点:SQL Server 2000是一个具备xxWeb支持的数据库产品,提供了可扩展标记语言(XML)核心支持以及Internet上和防火墙外进行查询的能力,具有可伸缩性、灵活性、扩充性好,而且价格便宜等特点;IBM的DB2是目前世界上最昂贵的大型数据库,但与它的服务器结合后其速度快、性能好的特点尤为突出,适用于对速度要求较高的大型用户;而Oracle则是以可靠的安全性受到一些xx用户青睐,即使服务器崩溃了也不会宕机,速度比SQL Server快上百倍,其价格在实施中却比它高出了几百倍,其ERP在中国市场占有60%市场;Sybase分别在企业解决方案、电子商务应用、商务智能、移动与嵌入计算及企业的电子金融应用领域为客户提供业界{lx1}技术,价格比SQL Server 2000高一些。  
SQL SERVER2000与ORACLE的比较:

  1、数据库*作平台的开放性

  Oracle能在所有主要的平台(其中包括Windows)上运行,并且xx支持所有的工业标准,所以,客户可以利用很多种第三方应用程序、工具、网关和管理实用程序。Oracle采用开放策略,它使得客户可以选择一种最适合他们特定需要的解决方案。SQL Server只在Windows上运行,Microsoft这种专有策略的目标是将客户锁定到Windows环境中。由于SQL Server紧密的捆绑在Windows平台上,所以,只有随着Windows*作系统可靠性、开放性以及性能的改善,SQL Server的开放性和可靠性才能进一步提高。

  2、性能价格比

  选择数据库产品,首先要考虑数据库产品的性能,同时还关心究竟要花多少钱才能建立并运行一套Oracle或SQL Server数据库系统。这些钱不仅包含最初购置软件、硬件的费用,还包含了维护、培训费用。两家公司都宣称自己的性能价格比好,实际上,Oracle公司侧重于产品的可靠性和实用性方面,而Microsoft公司更侧重于产品价格方面。由于*作系统的原因,普遍认为SQL Server的可靠性较差,而另一方面Oracle的初始花费则相对较高,尤其是在考虑工具软件的因素时,与SQL Server免费提供工具软件相比,Oracle更显价格不菲。所以,在考虑该使用什么软件时,要根据自己的业务需求和基础设施来综合考虑。

  3、工具软件

  使数据库易于安装、使用和管理--组合在一起称为"*作简单"--是一个减少成本的关键因素。Microsoft产品具有易于使用的美誉,在很多方面也确实如此,SQL Server就得益于让人感到使用起来比较容易。SQL Server企业管理器(Enterprise Manager)是SQL Server软件的一个组成部分,给用户提供了一个集成的管理控制台来集中管理多个服务器。Oracle也由自己的企业管理器,它的性能随着版本的提高有所改善,有些方面甚至超过了SQL Server企业管理器,但它安装较为困难,有些较好的组件还需另外购买。SQL Server与Windows*作系统无缝集成, Microsoft公司总是尽可能将所有的软件功能捆扎在一起,除非用户还需要其他用处的*作软件包,否则功能已足够使用了。而Oracle公司将工具软件交给第三方软件商来开发,花费高,尤其在别人的软件免费提供的情况下,这种问题就更显突出。

4、数据库性能

  那种数据库更快?这其实是一个很难回答的问题,因为存在许多不定因素,包括处理类型、数据分布以及硬件基础设施等。一些经验表明在长时间运行大量事务方面Oracle数据库要优于SQL Server,但在集群技术等方面,SQL Server比Oracle数据库要好一些。

  各行业是出于何种考虑来选择数据库的呢?是由它的特点来决定的。这几款主流数据库的特点:SQL Server 2000是一个具备xxWeb支持的数据库产品,提供了可扩展标记语言(XML)核心支持以及Internet上和防火墙外进行查询的能力,具有可伸缩性、灵活性、扩充性好,而且价格便宜等特点;IBM的DB2是目前世界上最昂贵的大型数据库,但与它的服务器结合后其速度快、性能好的特点尤为突出,适用于对速度要求较高的大型用户;而Oracle则是以可靠的安全性受到一些xx用户青睐,即使服务器崩溃了也不会宕机,速度比SQL Server快上百倍,其价格在实施中却比它高出了几百倍,其ERP在中国市场占有60%市场;Sybase分别在企业解决方案、电子商务应用、商务智能、移动与嵌入计算及企业的电子金融应用领域为客户提供业界{lx1}技术,价格比SQL Server 2000高一些。  

在sql Server中用top n 取得N条记录,

select top 10 *  from  dbo.Customer

在Oracle中用 rownum

   select * from dba_Customer where rownum<10

设置执行的语句执行的时间:

sql Server

  >--测式数据库语句运行的时间

Oracle中

set timing on;

-
--1、用户:
   select username from dba_users;
 
-- 改口令
   alter user spgroup identified by spgtest;
 
-- 2、表空间:
   select * from dba_data_files;
   
select * from dba_tablespaces; //表空间
   
select tablespace_name,sum(bytes), sum(blocks)
    
from dba_free_space group by tablespace_name;//空闲表空间

   
select * from dba_data_files
    
where tablespace_name='RBS';//表空间对应的数据文件

   
select * from dba_segments
    
where tablespace_name='INDEXS';
 
-- 3、数据库对象:
   select * from dba_objects;
   CLUSTER、
DATABASE LINK、FUNCTIONINDEX、LIBRARY、PACKAGE、PACKAGE BODY、
   
PROCEDURE、SEQUENCE、SYNONYM、TABLETRIGGER、TYPE、UNDEFINED、VIEW
 
-- 4、表:
   select * from dba_tables;
   analyze my_table
compute statistics;->dba_tables后6列
   
select extent_id,bytes from dba_extents
   
where segment_name='CUSTOMERS' and segment_type='TABLE'
   
order by extent_id;//表使用的extent的信息。segment_type='ROLLBACK'查看回滚段的空间分配信息
  
-- 列信息:
    select distinct table_name
    
from user_tab_columns
    
where column_name='SO_TYPE_ID';
  
--5、索引: 
   select * from dba_indexes;//索引,包括主键索引
   
select * from dba_ind_columns;//索引列
   
select i.index_name,i.uniqueness,c.column_name
    
from user_indexes i,user_ind_columns c
     
where i.index_name=c.index_name
     
and i.table_name ='ACC_NBR';//联接使用
 
-- 6、序列:
   select * from dba_sequences;
--  7、视图:
   select * from dba_views;
   
select * from all_views;
  
text 可用于查询视图生成的脚本
 
-- 8、聚簇:
   select * from dba_clusters;
  
9、快照:
   
select * from dba_snapshots;
--  快照、分区应存在相应的表空间。
--
  10、同义词:
   select * from dba_synonyms
    
where table_owner='SPGROUP';
    
//if owner is PUBLIC,then the synonyms is a public synonym.
     
if owner is one of users,then the synonyms is a private synonym.
--  11、数据库链:
   select * from dba_db_links;
 
-- 在spbase下建数据库链
   create database link dbl_spnew
   connect
to spnew identified by spnew using 'jhhx';
   
insert into acc_nbr@dbl_spnew
   
select * from acc_nbr where nxx_nbr='237' and line_nbr='8888';
  
--12、触发器:
   select * from dba_trigers;
 
-- 存储过程,函数从dba_objects查找。
--
  其文本:
select text from user_source where name='BOOK_SP_EXAMPLE';
--  建立出错:
select * from user_errors;

 


郑重声明:资讯 【Oracle与sql Server对比- and - 博客园】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——