You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看Oracle数据库中所有索引的启用、禁用等状态信息

Oracle查询所有索引启用/禁用状态方法

核心查询语句

查询当前登录用户名下的所有索引状态,直接执行以下SQL即可:

SELECT 
  index_name,
  status,
  visibility 
FROM user_indexes;

字段含义说明

  • STATUS字段标识索引的物理可用状态:
    • VALID:索引处于正常启用状态,优化器可以正常调用,DML操作会自动维护索引数据
    • UNUSABLE:索引处于禁用/不可用状态,优化器不会选择该索引,DML操作也不会更新索引内容,需要重建后才能恢复使用
    • FAILED:索引创建失败残留的无效对象,无使用价值
  • VISIBILITY字段(Oracle 11g及以上版本支持)标识索引的逻辑可见状态,属于软禁用相关参数:
    • VISIBLE:索引对查询优化器可见,属于正常启用范畴
    • INVISIBLE:索引对优化器默认隐藏,不会被自动选中,但DML操作仍会维护索引内容,多用于性能测试场景的临时软禁用

全库索引查询(需DBA权限)

如果需要查询整个数据库所有用户的索引状态,执行以下SQL:

SELECT 
  owner,
  index_name,
  status,
  visibility
FROM dba_indexes;

补充说明

Oracle本身存在明确的索引启用、禁用逻辑,不存在相关概念的说法是误解。USER_INDEXES表没有直接命名为ENABLED/DISABLED的字段,启用、禁用状态需要通过上述两个字段组合判断。

内容的提问来源于stack exchange,提问作者willberthos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:36:01