SQL Server和Oracle,哪一个在可伸缩性方面更好?

时间:2008-09-24 09:24:35

标签: sql-server database oracle

MS SQL Server和Oracle,哪一个在可扩展性方面更好? 例如,如果数据大小达到500 TB等。

10 个答案:

答案 0 :(得分:21)

Oracle和SQL Server都是共享磁盘数据库,因此对于表扫描大量数据的查询,它们受磁盘带宽的限制。 TeradataNetezzaDB/2 Parallel Edition等产品是'shared nothing'架构,数据库在各个节点上存储水平分区。这种类型的体系结构提供了最佳的并行查询性能,因为每个节点上的本地磁盘不受SAN上的中心瓶颈约束。

共享磁盘系统(例如Oracle Real Application ClustersClustered SQL Server安装仍然需要共享SAN,这限制了流量带宽。在VLDB上,这会严重限制表扫描大多数数据仓库查询跨大型数据块运行表或范围扫描。如果查询占用的行数超过百分之一,则单个表扫描通常是最佳查询计划。

节点上的多个本地直接连接磁盘阵列可提供更多磁盘带宽。

话虽如此,我知道Oracle DW商店(一家主要的欧洲电信公司)拥有一个基于oracle的数据仓库,每天可以加载600 GB,因此共享磁盘架构似乎没有施加不可逾越的限制。

在MS-SQL和Oracle之间存在一些差异。恕我直言Oracle有比SQL服务器更好的VLDB支持,原因如下:

  • Oracle对bitmap indexes提供原生支持,这是一种适用于高速数据仓库查询的索引结构。它们基本上用于I / O权衡的CPU,因为它们是行程编码的并且使用相对较小的空间。另一方面,微软声称Index Intersection的速度并不慢。

  • Oracle具有比SQL Server更好的表分区功能。 IIRC SQL Server 2005中的表分区只能在一个列上完成。

  • Oracle可以在somewhat larger hardware上运行,而不是SQL Server,尽管可以在某些quite respectably {{}上运行SQL Server 3}}系统。

  • Oracle对largeMaterialized views提供了更为成熟的支持,以优化关系查询。 SQL2005确实有一些查询重写功能,但它的文档很少,我还没有看到它在生产系统中使用过。但是,Microsoft建议您使用Query rewrite,它确实支持无共享配置。

除非您拥有真正的圣经数据卷,并且正在选择Oracle和无共享体系结构(如Teradata)之间,否则您可能会发现Oracle和SQL Server之间几乎没有实际区别。特别是自SQL2005引入以来,SQL Server中的分区工具被认为已经足够好了,Analysis Services plentyexamplesmulti-terabyte系统已成功实现。

答案 1 :(得分:5)

当你说500TB时,那是(a)大和(b)专业。 我会去一家咨询公司和合适的专家来研究现有技能,与现有技术堆栈的集成,预期用途,备份/恢复/ DR要求......

简而言之,根据stackoverflow的意见,这不是我要进入的那种项目。没有违法行为,但有太多因素需要考虑,其中很多都是商业机密。

答案 2 :(得分:4)

Oracle或MSSQL是否能够更好地扩展/表现是问题#15。无论您是在运行Oracle,MSSQL,Informix还是其他任何东西,数据模型都是第一个make-it或break-it项。数据模型结构,什么样的应用程序,它如何访问数据库等,你的开发人员知道哪个平台足以针对大型系统等是你应该问自己的第一个问题。

答案 3 :(得分:3)

我曾在甲骨文担任DBA(虽然几年前),我现在广泛使用MSSQL,虽然不是正式的DBA。我的建议是,在绝大多数情况下,两者都会满足您可以投入的所有内容,而且您的性能问题将更多地依赖于数据库的设计和部署,而不是产品的基本特征,这两种情况都绝对完全固体(MSSQL是MS在许多人看来最好的产品,所以不要让通常认为的MS会让你失明)。

我自己会倾向于MSSQL,除非你的系统非常庞大且真正的企业级别(大量用户,多个9的正常运行时间等)仅仅因为根据我的经验,Oracle往往需要更高水平的DBA知识和维护比MSSQL充分利用它。对于初始部署和为其雇用DBA的成本,Oracle也往往更加昂贵。 OTOH如果你正在寻找一个企业系统,那么甲骨文就会有优势,尤其是因为如果你能负担得起,他们的支持是首屈一指的。

答案 4 :(得分:3)

我必须同意那些说deisgn更重要的人。

我使用过多种不同风格的超高速和超慢速数据库(绝对最糟糕的是Oracle数据库,但这不是Oracle的错)。数据库的设计以及您决定对其进行索引并对其进行分区和查询的方式与可扩展性有关,而不是产品是来自MSSQL Server还是Oracle。

我认为您可以更容易地找到具有terrabyte数据库经验的更多Oracle dbas(运行大型数据库就像了解SQL的特定风格一样,但这可能取决于您的本地区域)。

答案 5 :(得分:2)

当你达到OBSCENE数据库大小(超过1TB足够大,500TB大量涌现)时,运营支持必须在要求列表中占据很高的位置。有了那么多的数据,你就不会吝啬吝啬的系统规范。

你打算如何备份那么大的系统?升级操作系统并修补数据库?可扩展性和可靠性是一个问题?

我有Oracle和MS SQL的经验,对于非常大的系统(用户,数据或重要性),Oracle更适合运营支持和数据管理。

每个尝试备份和恢复多个实例上的多个数据库的1TB + SQL Server数据库,并且每个数据库都在发送事务日志文件,并尝试将它们全部保持同步?祝你好运。

使用Oracle,您拥有一个数据库(因此我不同意“无共享”方法更好)使用一组REDO日志(1)和一组存档日志(2),您只需添加额外的硬件节点不改变(即重新分配)您的应用程序和数据。

(1)重做日志当然是镜像的。 (2)存档日志当然存储在多个位置。

答案 6 :(得分:1)

oracle人会告诉你oracle更好,sql server peopele会告诉你sql server更好。 我说他们的规模几乎相同。更好地利用你所知道的。你有那些在oracle和sql server上都有这个大小的数据库

答案 7 :(得分:0)

这还取决于您的应用程序的用途。如果它只使用只有很少更新的Inserts,那么我认为MSSQL在性能方面更具可扩展性和更好。但是,如果有更多的更新,那么Oracle会更好地扩展

答案 8 :(得分:0)

我非常怀疑你是否会得到这个特定问题的客观答案,直到遇到在两个平台上都实现了相同数据库(架构,数据等)的任何人。

然而,鉴于您可以找到数百万数据库中数百万的快乐用户,我敢说它们可以扩展得很好(我已经看到一个快速的Sql 2005实现了300 TB,这并不是太过分了。似乎非常敏感)

答案 9 :(得分:0)

甲骨文就像一台高质量的手动胶片相机,需要最好的摄影师拍摄最好的照片,而MS SQL就像一台自动数码相机。在过去,当然,所有专业摄影师都会使用胶卷相机,现在想想有多少专业摄影师使用自动数码相机。