惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
T
Threat Research - Cisco Blogs
H
Hacker News: Front Page
N
News and Events Feed by Topic
Know Your Adversary
Know Your Adversary
Cisco Talos Blog
Cisco Talos Blog
SecWiki News
SecWiki News
C
Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tor Project blog
K
Kaspersky official blog
Forbes - Security
Forbes - Security
Webroot Blog
Webroot Blog
Schneier on Security
Schneier on Security
P
Privacy & Cybersecurity Law Blog
H
Heimdal Security Blog
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
V
Vulnerabilities – Threatpost
T
Tenable Blog
T
Tailwind CSS Blog
P
Privacy International News Feed
WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
博客园 - Franky
Hacker News: Ask HN
Hacker News: Ask HN
Jina AI
Jina AI
C
Cybersecurity and Infrastructure Security Agency CISA
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
雷峰网
雷峰网
Vercel News
Vercel News
A
About on SuperTechFans
爱范儿
爱范儿
Simon Willison's Weblog
Simon Willison's Weblog
AWS News Blog
AWS News Blog
The Last Watchdog
The Last Watchdog
Engineering at Meta
Engineering at Meta
Spread Privacy
Spread Privacy
Security Archives - TechRepublic
Security Archives - TechRepublic
博客园 - 司徒正美
量子位
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
Hacker News - Newest:
Hacker News - Newest: "LLM"
Recorded Future
Recorded Future
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Martin Fowler
Martin Fowler
Project Zero
Project Zero

博客园 - Ken Lin

Asp.net常用的一些代码(转) - Ken Lin - 博客园 Sharepoint工作流任务权限问题 MOSS开发Tips WSS 扩展文件夹属性-应用场景一 内容查询Web 部件定制 How to submit data in InfoPath form services Form Services方式发布带有Managed Code的表单模板 WSS 代码执行的权限提升 用代码访问InfoPath表单内容 STSADM 进行MOSS的备份与迁移 利用SharePoint Designer更改任务列表状态栏显示 MOSS 工作流(二)自定义开发 MOSS-自定义字段类型 通过Web Part Connection 在Web Part 之间传递数据(二) 通过Web Part Connection 在Web Part 之间传递数据(一) WebPart 生存周期 QuickPart中文字符显示问题 MOSS SP1 解决Ajax Extension 对Webpart的兼容性问题 MOSS 工作流(一)
Oracle VS Sql Server
Ken Lin · 2008-08-15 · via 博客园 - Ken Lin

一、Oracel 是多进程,多线程;SQL Server 是单进程,多线程 

回应:

多线程的数据库系统与多进程的数据库系统相比,装入Microsoft SQL Server时,仅仅启动一个进程,而每个用户有各自的线程,这种结构需要的资源比多进程系统少得多。从而可以更好地将资源应用在数据管理与操作上。

Microsoft SQL Server的强大功能还表现在其保证数据的完整性,有了服务器维护数据的完整性,就没有再必要依赖各个部门的程序员,他们能力各异,编写的应用程序也很难统一, 所以使用统一的数据库环境进行数据完整性保护,自我保护能力比较起多进程多线程的数据库系统要强。

SQL Server支持的多线程原理上与多进程类似 . 不同的是多线程数据库引擎自己负责各个应用程序占用cpu的时间,不依赖于操作系统。

总而言之,多进程方式比单进程多线程需要消耗更多的资源,同时在通讯上消耗也比较大,对并发的支持不如多线程模式 

二、Oracle支持联机备份,SQL Server不支持基于块介质的数据库备份

回应:

SQL Server 支持联机备份,在SQL Server 2005中同样支持对块介质(页面级)的在线或离线恢复。

三、Oracle可以透明地实现分布式事务,SQL Server 空白 

回应:

SQL Server 对分布式处理技术有非常好的支持

分布式事务跨越两个或多个称为资源管理器的服务器。称为事务管理器的服务器组件必须在资源管理器之间协调事务管理。如果分布式事务由 Microsoft 分布式事务处理协调器 (MS DTC) 之类的事务管理器或其他支持 X/Open XA 分布式事务处理规范的事务管理器来协调,则每个 SQL Server Database Engine 实例都可以作为资源管理器来运行。

跨越两个或多个数据库的单个数据库引擎 实例中的事务实际上是分布式事务。该实例对分布式事务进行内部管理;对于用户而言,其操作就像本地事务一样。

对于应用程序而言,管理分布式事务很像管理本地事务。当事务结束时,应用程序会请求提交或回滚事务。不同的是,分布式提交必须由事务管理器管理,以尽量避免出现因网络故障而导致事务由某些资源管理器成功提交,但由另一些资源管理器回滚的情况。通过分两个阶段(准备阶段和提交阶段)管理提交进程可避免这种情况,这称为两阶段提交 (2PC)

数据库引擎 应用程序可以通过 Transact-SQL 或数据库 API 来管理分布式事务 

此外,SQL Server还提供相应的复制机制,包括快照复制,点对点复制,事务复制与合并复制,对集中/分布等环境可以提供丰富的数据同步支持

四、支持并行计算:Oracle 不仅并行查询而且支持分区内并行处理能力;SQL Server  采用Shared Notiong 结构,不能实现分区内并行处理、只有有限支持并行查询语句,不支持并行DML

回应:

SQL Server 2005 可提供并行查询,来优化拥有多个微处理器 (CPU) 的计算机的查询执行和索引操作。由于允许 SQL Server 使用多个操作系统线程来并行执行查询或索引操作,从而 SQL Server 可以快速高效地完成操作。

SQL Server 2005 自动检测每个实例的并行查询执行或索引数据定义语言 (DDL) 操作的最佳并行度

在并行查询执行计划中,插入、更新和删除运算符是串行执行的。不过,UPDATE DELETE 语句的 WHERE 子句,或者 INSERT 语句的 SELECT 部分可以并行执行。之后,实际的数据更改将串行应用到数据库。也就是说对于DMLSQL 可以部分并行。

五、并行处理技术:Oracle 支持几乎所有的Cluster群机;SQL Server 目前无真正的集群,其并行系统实际上式Federated数据库,具有很低的性能和可扩展性

回应:

这个问题,没有必要正面回答Oracle对集群的支持,但是可以讨论对高可用性支持的机制。

对于高性能比较:

          并行计算与并行处理需要达到的目的是提高系统性能。

          SQLServer 提供了广泛的并行性

        创建索引并行

        并行数据装载

        并行查询处理

        并行数据检索

        备份并行

        并行数据完整性验证

          除并行支持外,SQL Server 同等规模的服务器下,性能要优于Oracle

          数据库专业评测机构(http://www.tpc.org/)对数据库每分钟数据处理能力tpmC评测结果:

        微软SQL Server 2005 每分钟数据处理数:1,231,433

        Oracle 10g每分钟数据处理数:1,008,144

        微软SQL Server 2005占据第一位,每分钟处理超出Oracle 10g 20多万次

          价格性能比(Price/tpmC

        微软SQL Server 20054.82美元

        Oracle 10g8.33美元

        微软SQL Server 2005价性比最低,比Oracle低:3.51美元

高可用性比较

SQL Server 2005多数据主流数据库产品,如IBMDB2相同,采用share-nothing技术实现故障转移集群,在这种模式下,如果只采用active/standby模式,不能够实现两台物理服务器同时写共享磁盘阵列,但是硬件配置适宜的条件下,SQL Server 2005 支持share-nothing技术下的active-active实现。

对于Oracle 采用share-data模式,随着节点的增加,其内部通讯带来的系统开销(cache同步等),是在OLTP系统上是一个非常令人担心的问题,对于OracleRAC对于大型OLTP带来的内部通讯开销非常庞大,在四节点的群集基准测试中,全局缓存服务消耗了每个服务器12%CPU 资源。

应该注意的是,在业界的基准测试TPC-C中,Oracle 获得的最优异成绩没用使用RAC技术实现,具体可以参见http://www.tpc.org/

另一方面,多个服务器对共享磁盘的争用,也会消耗大量的系统资源。在用户配置了高性能的物理服务器,不能获得相应的性能增长。

此外,在主/主的群集配置中,群集中的一个服务器发生故障后,会导致性能下降。例如,在双节点群集中,如果一个节点发生故障,就只能使用 50% 的服务器处理能力支撑业务的运行。而采用主/从配置,根据设计,在发生节点故障后,它仍然可以提供 100% 的服务器处理能力来运行应用程序。当然,如果在发生故障后仍需获得 100% 的处理性能,必须在故障发生前具备额外的处理能力。使用 Oracle RAC ,必须至少使用 3个服务器(或 2 个超配置的服务器),以期容错并保持性能不受影响。 

六、多版本的读一致性:Oracle 支持读一致性并发模型;SQL Server用户的连续读会导致脏读,返回不正确结果

回应:

(Oracle这一点完全不是事实)
SQL Server 支持ANSI规定的四个隔离级别:

 请参看http://msdn2.microsoft.com/zh-CN/library/ms189122.aspx

Oracle仅实现了标准规定的两种 隔离级别 http://epub.itpub.net/3/4.htm

事实表明,在SQL中可以非常好地对数据的一致性进行控制,而Oracle,对数据一致性不可进行精细控制。 

七、数据库的并发性:Oracle采用读一致快照;SQL Server  读和写操作经常互相阻塞,大大增加了死锁的可能

回应:

SQL Server 2000中,的确不支持快照隔离级别。

SQL Server 2005中,除已有的四种隔离级别(Oracle仅有两种),又增加了快照隔离级别和已提交读快照隔离级别,SQL Server Database Engine 支持 SQL-92 中定义的事务隔离级别。设置事务隔离级别使程序员面临的风险因某些完整性问题而增加,但好处是可以支持更好的数据并发访问。现在SQL Server 2005可以支持完备的隔离级别,精细地对各种并发和性能进行调整。 

八、安全控制:Oracle 支持C2级安全认证; SQL Server空白

回应:

早在SQL Server 2000 SQL Server 就通过了C2级安全认证。

SQL Server 2005 RTM时通过了EAL4+级别认证

而且不论何种版本,都提供完整的安全性控制,而 Oracle不同,高级的安全功能仅仅只在企业版中提供。

来自http://www.secunia.com 对数据库产品安全公告的分析,可以清晰地看出,Oracle在历年对安全公告统计的结果中,Oracle的安全公告的数目要大大高于SQL Server 

九、硬件平台及操作系统的适用性:Oracle适用于几乎所有平台;SQL Server 只能在Windows上运行

回应:

SQL Server 基于从手持设备到高端大型服务器(包括64CPU的大型服务器),使用同一套Kernel的数据库产品,兼容性,扩展性以及一致性都非常好。

Oracle针对不同的平台使用不同的codebase

Oracle Kernal从六十年代开始使用,至今没有大的改变(有非常大的冗余)。而SQL Server 是九十年代的内核,具有更好的适应能力

只有专注于一个平台的产品才能做到最好的设计与调优