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

如何在DB2中识别未使用索引?是否存在相关系统表?

在DB2中识别未使用的索引

当然可以在DB2中识别未使用的索引,以下是几种实用的方法及对应的系统表/监控视图:

1. 利用SYSIBMADM.INDEX_USAGE监控视图

这个视图直接提供索引的使用统计数据,包括最后一次使用时间、扫描次数等关键指标,是排查未使用索引最便捷的方式:

SELECT INDNAME  AS 索引名称,
       TABSCHEMA AS 表模式,
       TABNAME   AS 表名称,
       LASTUSED  AS 最后使用时间,
       SCANS     AS 扫描次数
FROM SYSIBMADM.INDEX_USAGE
WHERE LASTUSED IS NULL OR SCANS = 0;
  • LASTUSED为NULL意味着该索引自监控开启后从未被使用过
  • SCANS = 0表示该索引没有被执行过扫描操作

2. 结合SYSIBM.SYSINDEXES系统表与监控配置

针对较旧版本的DB2,需要先开启索引监控功能,再通过系统表查询:

  1. 开启索引监控:
UPDATE DATABASE CONFIGURATION USING MON_INDEX ON;
  1. 查询未被标记为使用过的索引:
SELECT NAME    AS 索引名称,
       TBNAME  AS 表名称,
       CREATOR AS 创建者
FROM SYSIBM.SYSINDEXES
WHERE USED = 'N';

3. 活动事件监控(长期追踪)

如果需要长期监控索引使用情况,可以创建事件监控捕获索引相关事件,后续通过分析监控日志识别未使用的索引。这种方法适合需要持续追踪索引利用率的场景,但配置相对繁琐。

注意事项

  • 确保MON_INDEX参数处于开启状态,否则无法收集索引使用统计数据
  • 统计数据从监控开启时开始累积,建议在业务高峰周期后再查询,避免误判新建但尚未被业务访问的索引
  • 删除未使用索引前,请务必备份索引并确认该索引不会在低频业务场景(如季度报表、批量任务)中被使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:52:13