一直搞不明白Oracle数据库和sql server的区别,今天我特意查资料把他们的区别整理出来
Oracle数据库:Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。
它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
sql server数据库:美国Microsoft公司推出的一种关系型数据库系统。SQL Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案
两者的区别:
(1)操作的平台不同
- Oracle可在所有主流平台上运行,Oracle数据库采用开放的策略目标,它使得客户可以选择一种最适合他们特定需要的解决方案。客户可以利用很多种第三方应用程序、工具。而SQL Server却只能在Windows上运行了。
- 但SQL Sever在Window平台上的表现,和Windows操作系统的整体结合程度,使用方便性,和Microsoft开发平台的整合性都比Oracle强的很多。但Windows操作系统的稳定性及可靠性大家是有目共睹的,再说Microsoft公司的策略目标是将客户都锁定到Windows平台的环境当中,只有随着Windows性能的改善,SQL Server才能进一步提高。从操作平台这点上Oracle是完全优胜于SQL Server的了。
- 也就是说Oracle支持多种操作系统,sql server支持window系统
(2)文体结构不同
- oracle的文件体系结构为:
数据文件 .dbf(真实数据)
日志文件 .rdo
控制文件 .ctl
参数文件 .ora
sql server的文件体系结构为:
.mdf (数据字典)
.ndf (数据文件)
.ldf (日志文件)
(3)存储结构不同
-
oracle存储结构:
在oracle里有两个块参数pctfree(填充因子)和pctused(复用因子),可控制块确定块本身何时有,何时没有足够的空间接受新信息(对块的存储情况的分析机制)
这样可降低数据行连接与行迁移的可能性。块的大小可设置(oltp块和dss块)
在oracle中,将连续的块组成区,可动态分配区(区的分配可以是等额的也可以是自增长的)可减少空间分配次数
在oraclel里表可以分为多个段,段由多个区组成,每个段可指定分配在哪个表空间里(段的类型分为:数据段、索引段、回滚段、临时段、cash段。oracle里还可对表进行分区,可按照用户定义的业务规则、条件或规范,物理的分开磁盘上的数据。
这样大大降低了磁盘争用的可能性。
oracle有七个基本表空间:
·system表空间(存放数据字典和数据管理自身所需的信息)
·rbs回滚表空间
·temp临时表空间
·tools交互式表空间
·users用户默认表空间
·indx索引表空间
·dbsys福数据表空间
不同的数据分别放在不同的表空间(数据字典与真实数据分开存放),在oracle里基表(存储系统参数信息)是加密存储,任何人都无法访问。只能通过用户可视视图查看。
-
sql server 存储结构
以页为最小分配单位,每个页为8k(不可控制,缺乏对页的存储情况的分析机制),可将8个连续的页的组成一个‘扩展’,以进一步减少分配时所耗用的资源。(分配缺乏灵活性),在sql server里数据以表的方式存放,而表是存放在数据库里。
sql server有五个基本数据库: www.2cto.com
·master(数据字典)
·mode(存放样版)
·tempdb(临时数据库)
·msdb(存放调度信息和日志信息)
·pubs(示例数据库)
真实数据与数据字典存放在一起。对系统参数信息无安全机制。
(4)安全性
Oracle的安全认证获得最高认证级别的ISO标准认证,而SQL Server并没有获得什么安全认证。这方面证明了Oracle的安全性是高于SQL Server的。
(5)性能不同
SQL Server 多用户时性能不佳
Oracle 性能最高, 保持windowsNT下的TPC-D和TPC-C的世界记录。
(6)开放性
SQL Server 只能在windows 上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据量的关键业务时。
Oracle 能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持
(7)客户端支持及应用模式
SQL Server C/S结构,只支持windows客户,可以用ADO,DAO,OLEDB ,ODBC连接.
Oracle 多层次网络计算,支持多种工业标准,可以用ODBC, JDBC,OCI等网络客户连接
意见:
SQL server 完全重写的代码,经历了长期的测试,不断延迟,许多功能需要时间来证明。并不十分兼容早期产品。使用需要冒一定风险。
Oracle 长时间的开发经验,完全向下兼容。得到广泛的应用。完全没有风险。
LeetCode OJ 116. Populating Next Right Pointers in Each Node
LeetCode OJ 108. Convert Sorted Array to Binary Search Tree
LeetCode OJ 105. Construct Binary Tree from Preorder and Inorder Traversal
LeetCode OJ 98. Validate Binary Search Tree
老程序员解Bug的通用套路
转载 四年努力,梦归阿里,和大家聊聊成长感悟
转载面试感悟----一名3年工作经验的程序员应该具备的技能
Web Service和Servlet的区别
关于spring xml文件中的xmlns,xsi:schemaLocation