如何获取索引被使用次数或者命中过多少次,目的是找到从未使用的索引或者使用频率非常低的索引

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】OB
【 使用版本 】all
【问题描述】如何获取索引被使用次数或者命中过多少次,目的是找到从未使用的索引或者使用频率非常低的索引

获取不了,OB 目前没有相关视图。

我也是自己在文档没有找到,所以来问问

1 个赞

暂时没有这个功能,我可以帮你问问有没有其他方式可能满足你这个需求。之后在这里给你回复

好哒,非常感谢。对运维,性能优化都是很有用处

哈喽,目前这个问题有解决办法了吗

没有,坐等中。

提供一个思路,比较复杂:通过gv$sql_audit,查出业务租户执行sql的执行计划plan_id,在根据四要素 TENANT_IDPLAN_IDSVR_IPSVR_PORT,通过 gv$plan_cache_plan_explain 查询业务租户的执行计划的name 列。把这个思路做成脚本,定时收集,存入一张表里。

收集一段时间后,把name列的值,跟生产上的索引进行对比即可

有些索引,年结跑批才会用到的,你就不好判断了。一年用一次,所以没法精确

那不如搜ocp monitordb里的ob_hist_plan_cache_plan_explain.object

也行,多收集几天的。这个数据字典的数据,也有保留时间的