我一直坚信,大型多用户 DBMS 应该独立地驻留在专用服务器或集群上,并且不应有其他不必要的应用程序、进程或服务窃取 DBMS 的资源。我还认为 DBMS 应该与经过量身定制的 OS 紧密集成,以便为 DBMS 提供尽可能高的性能!Pick、Terradata 等专有系统就是以此为目标设计的。最新的 Sun/Oracle 系统是否属于这一类别?.. 使用其他 DBMS(如 INFORMIX)实现这种架构是否有意义?
答案1
一般来说,当您将两台或多台计算机放在一起为一个数据库提供服务时,ACID RDBMS 的某些属性结合起来会产生多项式时间的性能特征。
有多种尝试来解决这个问题:
通过减少事务、减少连接等方式尽可能地优化数据库。
尽可能的优化一台计算机来为数据库服务——比如优化支撑操作系统,优化磁盘等。
通过使用一台功能极其强大的计算机为数据库提供服务,实现垂直扩展。
通过分片或将不同的表放在不同的数据库中来分发 RDBMS。
使用真正的分布式数据库,它放弃了 ACID RDBMS 的一些属性,但提供了真正的分布式及其伴随的性能。例如 Cassandra 等。真正的分布式数据库可以在商用硬件上运行,因为分布式数据库的性能主要取决于有多少个节点,而不是取决于任何给定节点的性能。
前四种方法有严格限制。第五种方法没有限制。
由于数据库需求的增长速度比调整和硬件所能跟上的增长速度快很多倍,分布式数据库将成为必然的解决方案。当然,许多人会尝试调整他们的数据库服务器,然后被迫升级到大型硬件,但这只是权宜之计,当这不再足够时,他们将被迫转向分布式数据库。
答案2
如果你有 25 万美元的闲钱,你可以考虑购买一部分Oracle Exadata 计算机这是一个高度配置的数据库设备,它选择了高度指定的硬件,并对 Solaris 进行了调整,直到它能够优化 Oracle 的性能。
答案3
Oracle 和 Solaris 之间的集成比大多数都紧密。但我无法确认它是否满足您的要求。
答案4
我假设你想要讨论而不是答案……但我的答案是“不”
在大型企业中,每个 Oracle、Sybase 和 SQL Server 安装可能都使用最低标准:SAN。SAN 本身可能在异地进行事务复制。请咨询任何企业 DBA。
在任何商店中,代码质量都是比服务器/操作系统更重要的因素。例如,无论多少优化和集成都无法让您摆脱糟糕的索引。
其他要点:
- 在我看来,TB 级数据库更多的是备份/恢复/SLA 问题
- 从性能角度来看,你需要担心的是活跃数据集或每日增长量