Josh Smeaton Asked: 2012-05-18 20:39:23 +0800 CST2012-05-18 20:39:23 +0800 CST 2012-05-18 20:39:23 +0800 CST 在物化视图上创建位图索引 772 我一直在阅读这篇文章,讨论位图索引的好处、权衡和潜在问题。提到: 此外,请记住位图索引仅适用于静态表和物化视图,它们在夜间更新并在批量行加载后重建。如果您的表在查询期间不是只读的,请不要考虑使用位图索引! 我们的大多数物化视图都使用快速刷新方法在夜间更新。上面的引用是否意味着应该重建 MV,或者应该重建索引? oracle index 1 个回答 Voted Best Answer Leigh Riffel 2012-05-25T13:04:30+08:002012-05-25T13:04:30+08:00 关键短语是“批量行加载后”。如果您的流程不符合此标准,则无需删除/重建位图索引。 乔纳森·刘易斯对此有一篇出色的文章。他给出的一个关键点是 您可能会很幸运——但一般来说,您应该假设如果您在批处理之前删除位图索引并在之后重新构建它们,那么即使是序列化的批处理更新也是最有效的。 整篇文章都很好,并以一些关于位图索引的关键事实作为结尾: 如果 B*tree 索引不是访问数据的有效机制,那么它不太可能仅仅因为将其转换为位图索引而变得更有效。 位图索引通常可以快速构建,而且往往非常小。 位图索引的大小随数据的分布而显着变化。 位图索引通常仅对可以同时使用多个此类索引的查询有用。 位图列的更新和数据的一般插入/删除可能会导致严重的锁争用。 位图列的更新和数据的一般插入/删除会显着降低索引的质量。
关键短语是“批量行加载后”。如果您的流程不符合此标准,则无需删除/重建位图索引。
乔纳森·刘易斯对此有一篇出色的文章。他给出的一个关键点是
整篇文章都很好,并以一些关于位图索引的关键事实作为结尾: