ORA-28604: table too fragmented to build bitmap index (string,string,string)

文档解释

ORA-28604: table too fragmented to build bitmap index (string,string,string)

Cause: The table has one or more blocks that exceed the maximum number of rows expected when creating a bitmap index. This is probably due to deleted rows. The values in the message are: (data block address, slot number found, maximum slot allowed)

Action: Defragment the table or block(s). Use the values in the message to determine the FIRST block affected. (There may be others).

ORA-28604是一个警告错误,表示你试图为(string,string,string)创建一个位图索引,但是表中数据太多,导致数据碎片过大,无法创建索引。

官方解释

最常见的原因是表上数据行很多,尤其是存在大量空值,所以当ORA-28604发生时,应该首先看看表的行数是否较多。此外,可能存在表的data block被频繁分割的情况,导致数据碎片化左右,从而导致ORA-28604的发生。

一般处理方法及步骤

1、针对表中的行数过多的情况,应考虑使用alter table mv… command 将表中的数据分区,然后再次尝试创建位图索引。

2、避免data block被frequent split,调整表的pctfree,freespace参数。

3、优化表中空值,使其尽量接近0。可以考虑将这些空值删除或者重新分配。

你可能感兴趣的