将无用的索引提取出来:
条件:
1. monitoring一段时间,没有使用过
2. 不属于PK、Unique约束的一部分
3. 和外键无关(这个里面有漏洞,如果一个外键次序和多条索引匹配,则一个都不匹配)
满足以上3个条件,认为这个索引是无效的,没有用处的
SELECT *
FROM v$object_usage
WHERE used = 'NO'
AND NOT EXISTS (SELECT 1
FROM user_constraints
WHERE user_constraints.index_name = v$object_usage.index_name)
AND NOT EXISTS (
SELECT 1
FROM (SELECT constraint_name, constraint_type,
matchforeignkeyindex (constraint_name) index_name
FROM user_constraints
WHERE constraint_type = 'R')
WHERE index_name = v$object_usage.index_name)
ORDER BY INDEX_NAME