查看Oracle索引:SELECT index_name, table_name, status FROM user_indexes;
查看视图:SELECT view_name, text FROM user_views WHERE view_name = '你的视图名';
查询所有索引
要查询数据库中所有的索引,可以使用以下SQL语句:
SELECT owner, index_name, table_name, status FROM all_indexes ORDER BY owner, index_name;
查看索引列
查看特定索引包含的列:SELECT column_name, column_position FROM all_ind_columns WHERE index_name = '你的索引名' AND index_owner = '所有者';
查询视图定义
获取视图的SQL定义:SELECT text FROM user_views WHERE view_name = 'VIEW_NAME';
检查索引使用情况
查看索引的使用统计:SELECT index_name, num_rows, leaf_blocks FROM user_indexes WHERE table_name = '你的表名';
所有者视图查询
当前用户的视图列表:SELECT view_name FROM user_views ORDER BY view_name;
所有视图:SELECT owner, view_name FROM all_views;
索引状态和类型
查询索引类型和状态:SELECT index_name, index_type, status FROM user_indexes;
FAQ
Q: 如何重建索引?
A: ALTER INDEX index_name REBUILD;
Q: 视图可以有索引吗?
A: 视图本身不能直接建索引,但底层表可以。
Q: 如何删除无用索引?
A: 先用ANALYZE INDEX验证使用率,然后DROP INDEX。
Q: 查看索引碎片?
A: SELECT index_name, del_lf_rows FROM user_indexes;