我不是任何数据库的狂热者,但我希望看到供应商之间的差异.
例如,我主要使用Oracle,我发现其他人(MySQL,SQL Server,PostgreSQL,...)不能这样做:
通过查询连接.
模型查询.
闪回(查询,表和数据库).
SQL Server也是如此,其他人无法做到:
最佳结果.
Troels Arvin.. 23
Oracle的CONNECT BY是标准SQL的递归SQL的有限版本.DB2和MSSQL递归的"公用表表达式"有点难以编码,但提供的功能比Oracle的CONNECT BY更强大.(不过,下一版本的Oracle数据库应该会得到真正的递归SQL.)
Flash back是一个真正独特的Oracle功能,它反映了MVCC在Oracle中的深度.与传统的悲观锁定相反,MVCC是Oracle处理并发的方式; 并发处理是数据库之间存在很大差异的地方之一(尽管大多数DBMS仅仅基于悲观锁定而远离并发).在我看来,Oracle坚定地建立MVCC的事实是一个重要的优势.
关于TOP结果:所有DBMS都有办法做到这一点.
除此之外:
SQL-wise:Oracle拥有最先进且符合标准的日期时间处理.Oracle在与OLAP相关的函数方面很强大(但DB2和MSSQL也是如此; OLAP函数是开源DBMS在跟上时遇到一些麻烦的一个领域).最近,Oracle似乎基本上忽略了SQL标准,因为它的标准合规性是停滞不前的(例如,与MSSQL相比,这里已经有了很大的改进); 由于甲骨文的巨大市场份额,我把这归咎于傲慢.
从概念上讲:Oracle和MySQL是处理数据库的两种截然不同的方式的示例.在Oracle中,创建数据库需要永远,并且数据库是一个非常重的对象,因此在Oracle世界中,数据库往往包含许多表,可能在不同的"模式"中.在MySQL中,数据库是一个非常轻量级的对象,所以MySQLers往往拥有许多数据库,每个数据库中的表相对较少(这可能就是为什么他们似乎并不抱怨MySQL缺少模式).
Oracle(如DB2)是一个几乎包含整个操作系统的DBMS示例:它执行许多功能,像MSMS/MySQL/PostgreSQL这样的DBMS可以让操作系统的文件系统和虚拟内存系统处理.就个人而言,我更喜欢后一种方法,但无论使用哪种操作系统,Oracle的方式都使Oracle的性能大致相同.
与MSSQL相比,Oracle在更多平台上运行(与大多数其他DBMS一样; MSSQL可能是唯一仅在Windows上运行的重要DBMS ).
与大多数其他DBMS相比,Oracle提供了另一种集群方式:RAC.我听过很多关于RAC的恐怖故事,但是如果你能让它发挥作用,可以公平地说你有一个非常强大(且昂贵)的集群解决方案.
关于管理,与大多数其他DBMS相比,我发现Oracle管理起来非常复杂.
然后,存在严重的价格差异,当然:甲骨文的定价非常高,而且还在上升.
Oracle的CONNECT BY是标准SQL的递归SQL的有限版本.DB2和MSSQL递归的"公用表表达式"有点难以编码,但提供的功能比Oracle的CONNECT BY更强大.(不过,下一版本的Oracle数据库应该会得到真正的递归SQL.)
Flash back是一个真正独特的Oracle功能,它反映了MVCC在Oracle中的深度.与传统的悲观锁定相反,MVCC是Oracle处理并发的方式; 并发处理是数据库之间存在很大差异的地方之一(尽管大多数DBMS仅仅基于悲观锁定而远离并发).在我看来,Oracle坚定地建立MVCC的事实是一个重要的优势.
关于TOP结果:所有DBMS都有办法做到这一点.
除此之外:
SQL-wise:Oracle拥有最先进且符合标准的日期时间处理.Oracle在与OLAP相关的函数方面很强大(但DB2和MSSQL也是如此; OLAP函数是开源DBMS在跟上时遇到一些麻烦的一个领域).最近,Oracle似乎基本上忽略了SQL标准,因为它的标准合规性是停滞不前的(例如,与MSSQL相比,这里已经有了很大的改进); 由于甲骨文的巨大市场份额,我把这归咎于傲慢.
从概念上讲:Oracle和MySQL是处理数据库的两种截然不同的方式的示例.在Oracle中,创建数据库需要永远,并且数据库是一个非常重的对象,因此在Oracle世界中,数据库往往包含许多表,可能在不同的"模式"中.在MySQL中,数据库是一个非常轻量级的对象,所以MySQLers往往拥有许多数据库,每个数据库中的表相对较少(这可能就是为什么他们似乎并不抱怨MySQL缺少模式).
Oracle(如DB2)是一个几乎包含整个操作系统的DBMS示例:它执行许多功能,像MSMS/MySQL/PostgreSQL这样的DBMS可以让操作系统的文件系统和虚拟内存系统处理.就个人而言,我更喜欢后一种方法,但无论使用哪种操作系统,Oracle的方式都使Oracle的性能大致相同.
与MSSQL相比,Oracle在更多平台上运行(与大多数其他DBMS一样; MSSQL可能是唯一仅在Windows上运行的重要DBMS ).
与大多数其他DBMS相比,Oracle提供了另一种集群方式:RAC.我听过很多关于RAC的恐怖故事,但是如果你能让它发挥作用,可以公平地说你有一个非常强大(且昂贵)的集群解决方案.
关于管理,与大多数其他DBMS相比,我发现Oracle管理起来非常复杂.
然后,存在严重的价格差异,当然:甲骨文的定价非常高,而且还在上升.