数据库之间的主要区别是什么?

我不是在任何数据库狂热,但我希望看到供应商之间的差异.

例如,我主要使用Oracle,我看到其他人(MySQL,sql Server,Postgresql,…)无法做到:

> Connect by查询.
> Model查询.
> Flash back(查询,表和数据库).

sql Server相同,其他人无法做到:

> Top results.

解决方法

Oracle的CONNECT BY是标准sql的递归sql的有限版本. DB2和MSsqls递归的“通用表表达式”有点难以编码,但比Oracle的CONNECT BY提供更多的权力. (下一个版本的Oracle数据库应该会得到真正的递归sql)

Flashback是一个真正独特的Oracle功能,它反映了Oracle内置的内容. MVCC是如何处理并发的,而不是传统的悲观锁定;并发处理是数据库之间存在很大差异的地方之一(尽管大多数DBMS只是基于悲观锁定而脱离并发).在我看来,Oracle坚定地建立MVCC这个事实是一个很大的优势.

关于TOP结果:所有DBMS都有办法做到这一点.

除此之外:

sql方式:Oracle具有最先进且符合标准的日期时间处理. Oracle在OLAP相关功能上很强大(但DB2和MSsql也是如此); OLAP功能是开放源代码数据库管理系统遇到困难的领域.最近,Oracle似乎基本上忽略了sql标准,因为它的标准合规性停滞不前(与MSsql相反,例如,在此已经有了很大的改进);由于甲骨文的市场份额很大,我对此傲慢不顾.

在概念上:Oracle和MysqL是处理数据库的两种非常不同的方法的例子.在Oracle中,创建数据库需要永远的时间,数据库一个非常重的对象,所以在Oracle世界中,一个数据库往往包含很多表,可能在不同的“模式”中.在MysqL中,数据库一个非常轻量级的对象,所以MysqLers倾向于拥有许多数据库,每个数据库的表格相对较少(这可能是他们似乎并不抱怨MysqL缺乏模式的原因).

Oracle(如DB2)是一个几乎包含整个操作系统的DBMS的示例:它执行许多功能,像MSsql / MysqL / Postgresql这样的DBMS将使操作系统的文件系统和虚拟内存系统处理.就个人而言,我更喜欢后一种方法,但Oracle的方式使得Oracle执行的功能非常相同,无论使用哪种操作系统.

与MSsql相比,Oracle运行在更多的平台上(像大多数其他DBMS一样; MSsql可能是仅在Windows上运行的唯一重要的DBMS).

与其他大多数DBMS相比,Oracle提供了一种集群方式:RAC.我听说过很多关于RAC的恐怖故事,但是如果你可以让它工作,可以说你有一个非常强大的(而且昂贵的)群集解决方案.

关于管理,与其他大多数DBMS相比,我发现Oracle的管理意外复杂.

那么,当然有定价差异很大,Oracle的定价非常高,而且上涨.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...