0

所以在这里我看着这个巨大的 oracle 10g 表。我查看了它的索引,发现所有列都在一个唯一索引下。这是否确实提供了任何性能优势?

4

2 回答 2

2

可能,也可能不是。可能是唯一索引正在实施约束以确保行确实是唯一的,并且根本不打算帮助提高性能。索引查找查询可能会带来性能优势,因为它们根本不需要访问实际的表。

从表面上看,这听起来应该被创建为一个 INDEX ORGANIZED 表。

于 2010-07-16T15:52:51.463 回答
0

从性能的角度来看,我会说将所有字段都放在一个索引中(唯一或不唯一)通常不是一个好主意。

  • 对表的任何更新都将导致该索引被更新。在“正常”表中(“正常”这个词使用得非常松散),会有一些字段没有被索引。如果更新了这些字段之一,则效率更高,因为不需要更新索引。
  • 所描述的索引在查询优化方面有些限制。例如,假设表具有字段 a、b、c、d 和 e,并且索引是使用按该顺序的字段定义的。任何未a在 WHERE 子句中引用的查询都不能使用该索引。
  • 根据所涉及字段的数量和大小,这样的索引可能具有非常大的键。使用更大的键,这意味着每个页面中可以存储的键更少,因此对索引的更新意味着将涉及更多的页面读取和写入。
于 2010-07-17T01:42:48.530 回答