如果重新建表索引后不生效,可能是因为数据库还在使用老的索引而没有刷新新的索引。您可以尝试以下方法来解决这个问题:
重新编译存储过程和触发器:有时候重新建表索引后,存储过程和触发器中的执行计划可能还是使用老的索引。您可以尝试重新编译这些存储过程和触发器,以便它们能够使用新的索引。
清除缓存:尝试清除数据库的缓存,以便数据库重新加载最新的索引信息。
重启数据库:如果上述方法都不起作用,您可以尝试重启数据库,以便数据库能够重新加载所有的索引信息。
检查索引状态:确保新建的索引是有效的并且没有被禁用。您可以使用以下SQL语句来检查索引状态:
SELECT INDEX_NAME, STATUS
FROM DBA_INDEXES
WHERE TABLE_NAME = 'your_table_name';
如果索引的状态是INVALID或DISABLED,您可以尝试重新建立索引或者启用索引。
如果上述方法都不起作用,您可以尝试使用Oracle提供的性能调优工具来分析数据库性能问题,以便找到问题的根本原因并解决。