Tag Archives: ‘SQL Server 2005’

多版本并发控制机制的比较:SQL Server 2005 vs Oracle Database 10g

在Yukon之前,Oracle的多版本读一致性的出色实现使得并发性比 SQL Server 好得多。SQL Server 以前的版本没有版本读一致性的特性,全部是“悲观”(pessimistic)锁的方式:所有的事务都需要锁。Yukon 中最大的一个特色是实现了快照隔离机制。所以发布的白皮书也为此浓墨重彩。快照隔离总是从已提交的数据快照读取数据。允许数据被只读事务读取。所以 SI 对只读事务的并发控制效果是很好的,但是对更新事务是否也这样不得而知。对长时间运行的更新事务来说更为不利于与短期的高竞争性事务。相比之下,Oracle提供了事务更新功能,但是不提供First-committer-wins 保护。二者现在都是行级锁。

继续阅读

Partition -Sql Server 2005 vs Oracle Database 10g

对 VLDB 来说,表和索引等对象的分区(partition)能力无疑是非常重要的特性。分区实现的好坏关系到超大数据库的扩展能力。

同 Oracle 9i 数据库一样,10g 在分区上依旧是只有四种类型,分别是:范围(Range)分区、列表(List)分区、Hash 分区以及复合分区(包含 range-hash 和 range-list 这两种方式)。10g 中只是做了一些改进。在 10g 中,你可以在索引组织表中应用分区特性。此外,对分区上的索引功能进行了改进。

Yukon 现在的分区方式相比 Oracle 的来说要灵活一点。在新版本中,分区可以通过Transact-SQL(或者其他的.NET语言)中用户定义的函数来实现,通过以下三步来做到:

继续阅读