a1e*_*x07 2 sql sql-server oracle
在使用SQLServer很长一段时间后,我常常认为与堆表相比,聚簇表(具有聚簇索引的表)通常是更好的选择.现在我也在使用Oracle,我真的不明白为什么他们的表默认是堆.根据我的经验,我可以说表中应该堆的数量有限(再次,我主要处理SQLServer).
Oracle是否有充分的理由"强迫"(通过强制我的意思是,CREATE TABLE没有指定organization index创建堆,而SQLServer,默认情况下创建聚簇表)用户使用堆表?
[更新]
关于SQLServer的澄清 - 我可能误用"default"来描述SQL Server行为; 我知道如果指定了主键,它会创建一个聚簇索引CREATE TABLE.我的观点是,我没有指定PK是集群的.
[/更新]
此外,在SQLServer中有很多关于集群表和堆的好文章,我想知道它可以在多大程度上应用于Oracle.
非常感谢任何信息.
谢谢.
Oracle的一个历史优势是其行级锁定机制,其中锁存储在数据行中(而不是存储在内存中或单独的结构中).这意味着从来没有需要"最小化"事务中的锁数,也没有将行锁升级到页(或表锁)的概念.
它的并发和恢复机制还允许它将未提交的数据写入磁盘,而不是将它们保存在内存中.
这些可以缓解群集/ btree结构化表也可以解决的相同问题.
简而言之,Oracle中的堆表与其他数据库中的堆表没有相同的问题,因此在同一物理块中共同定位相关数据不会获得相同的好处.
| 归档时间: |
|
| 查看次数: |
2308 次 |
| 最近记录: |