文档解释
ORA-13218: max number of supported index tables reached for [string] index
Cause: An add_index parameter was passed to ALTER INDEX when the number of existing index tables is already at maximum.
Action: Delete one of the index tables before adding another index table.
官方解释
This Oracle Database error occurs when you have exceeded the limit on the number of tables Oracle can provide an index on.The limit is based on the number of columns in the index, the optimizer cost, and the structure of the objects.
常见案例
正常处理方法及步骤
1.确认执行 SQL 语句的索引类型。使用 SELECT TYPE from USER_INDEXES 来检查索引类型,如果是非 B* 树索引,可以建立 B* 树树索引来尝试处理本问题;
2.对使用了 HINT 技术的 SQL 语句进行优化,使用 OPTIMIZER_FEATURES_ENABLE,禁止掉 OPT_PARAM 手动优化,或更改优 化器参数 COST_ABAS_AFFININTY 的参数值;
3.重新分析表,来更新索引的状态,在执行查询语句之前,使用 ANALYZE TABLE 表名 COMPUTE STATISTICS,来更新索引的使用情况;
4.扩大某索引对象支持的表数量,DBMS_STATS. SET_TABLE_PARAM 语句能够更改索引对象支持表的最大数目;
5.删除一些不必要的索引。