As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center提供指导。




9年前关闭。




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

最佳答案

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

共享磁盘系统(例如Oracle Real Application ClustersClustered SQL Server安装)仍需要共享SAN,该共享bitmap indexes限制了流传输的带宽。在VLDB上,这会严重限制可能实现的表扫描性能。大多数数据仓库查询运行表或范围如果查询将占行的百分之几以上,则单表扫描通常是最佳的查询计划。

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

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

MS-SQL和Oracle之间存在一些差异。由于以下原因,恕我直言,Oracle比SQL Server具有更好的VLDB支持:

  • Oracle对Index Intersection具有 native 支持,这是一种适合于高速数据仓库查询的索引结构。它们实质上是用CPU进行I/O权衡的,因为它们是游程长度编码的,并且使用的空间相对较小。另一方面,Microsoft声称somewhat不会明显慢一些。
  • 与SQL Server相比,Oracle具有更好的表分区功能。 IIRC SQL Server 2005中的表分区只能在单个列上完成。
  • 尽管可以在某些larger hardware quite系统上运行SQL Server,但是Oracle可以在respectably large Materialized views上运行。
  • Oracle对Query rewriteAnalysis Services具有更成熟的支持,以优化关系查询。 SQL2005确实具有一些查询重写功能,但是文档记录不多,而且我还没有看到它在生产系统中使用过。但是,Microsoft建议您使用plenty,它实际上支持不共享的配置。

  • 除非您拥有真正的圣经数据量,并且在Oracle和无共享架构(例如Teradata)之间进行选择,否则您可能看不到Oracle与SQL Server之间的实际区别。特别是自从引入SQL2005以来,SQL Server中的分区功能就被认为足够好,并且examples系统的multi-terabyte的ojit_a已在其上成功实现。

    关于sql-server - SQL Server和Oracle,在可伸缩性方面哪个更好?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/126188/

    10-16 22:43
    查看更多