【问题标题】:Indexing an Oracle IOT by non-pk fields按非 pk 字段索引 Oracle IOT
【发布时间】:2010-11-24 10:24:12
【问题描述】:

我在 SQL Server 中有一个表,需要将其正常的 pk 索引替换为两个字段上的聚集索引。这些其他字段不是主键的一部分。

我需要在 Oracle 中做类似的事情。据我所知,这可以使用按索引排序的表来完成,但我的猜测是这些索引仅在主键上构建。

有什么方法可以让我在 Oracle 中获得与 SQLServer 的聚集索引类似的行为?

【问题讨论】:

  • 如果你把 pk 换成别的东西,这个 'else' 就变成了 PK,那么问题出在哪里?
  • 感谢您的回答。替换pk的问题是这个表已经被广泛使用,而且我需要索引表的字段不是唯一的。由于这个原因,主键不能被替换。
  • 为什么 Oracle 表上的常规索引不够用?
  • 当时我正在寻找一种方法来模拟 Oracle 中的聚集索引功能。但它必须是你所说的:没有物理排序的常规索引。感谢您的回答。

标签: oracle clustered-index


【解决方案1】:

索引组织表是oracle的概念,它接近于sql server中的聚集索引。我在 oracle 论坛中找到了一个关于该主题的 discussion,在 asktom 上找到了一个。

我的问题是:为什么要调整行为?你想得到什么好处?

sql server 中的聚集索引主要是主键索引。行数据存储在索引节点中。 oracle上将行数据存储到索引中的conecpt是一个索引组织的表。 在 oracle 上,iot 用于避免在索引查找后将行数据第二次查找到表中。

sql server 上聚集索引的目的是存储行数据。一张表只能有一个聚集索引。该索引将保存行数据。任何其他索引都是非聚集索引。

恕我直言,聚集索引的概念与 sql server 数据存储绑定,在 oracle 中无需重建此行为。 Oracle 还有其他概念来存储数据。

答案: oracle 上的常规索引就是为了解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 2016-11-23
    • 2011-02-20
    • 2019-10-19
    • 2014-01-26
    • 1970-01-01
    相关资源
    最近更新 更多