作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有 Oracle 背景,对每个表使用“索引组织表”(IOT) 在 Oracle 中听起来不合理,我从未真正见过这种情况。在 SQL Server 中,我使用的每个数据库在每个表上都有一个聚集索引,这与 IOT(概念上)相同。
这是为什么呢?有什么理由到处使用聚簇索引吗?在我看来,它们只适用于少数情况。
谢谢
最佳答案
聚簇索引与索引组织表并不完全相同。对于物联网,每个领域都必须参与物联网 key 。 SQL Server 上的聚集索引不必是唯一的,也不必是主键。
聚簇索引在 SQL Server 上被广泛使用,因为几乎总是有一些自然顺序可以使常用查询更有效。 Oracle 中的 IOT 承载更多包袱,因此它们不是很有用,尽管它们可能比通常认为的更有用。
从历史上看,真正旧版本的 SQL Server 6.5 或 7.0 IIRC 之前不支持行级锁定,只能在表级或页级锁定。通常会使用聚簇索引来确保写入分散在表的物理存储周围,以最大限度地减少对页面锁的争用。但是,SQL Server 6 几年前就不再支持,因此存在此问题的应用程序将仅限于罕见的遗留系统。
关于sql-server - 聚簇索引 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10161888/
我是一名优秀的程序员,十分优秀!