OB4版本需要如何查找无效索引

SELECT a.tenant_id, a.database_id,b.database_name, a.table_id, table_name AS index_name, data_table_id, index_status from __all_virtual_table a,__all_virtual_database b where a.database_id=b.database_id and table_type=5 and index_status not in (1, 2, 3) LIMIT 30;

只查找到了3版本的语句,请问是否与4版本是通用的

5 个赞
  1. 立即停止跨版本直接复用 :3.x 查询语句在 4.x 生产环境存在高风险
  2. 查阅官方文档
  • 《OceanBase 4.x 系统表参考》→ 搜索 “DBA_OB_INDEXES”
  • 《升级指南》→ “系统表变更” 章节(重点关注虚拟表废弃清单)
2 个赞

@论坛小助手

2 个赞

对于OceanBase 4版本,您提供的查询语句在理论上是可以工作的,因为它查询的是系统表来找出索引状态不正常的索引。但是,由于OceanBase 4版本的系统表和列名可能与3版本有所不同,建议先确认__all_virtual_table__all_virtual_database系统表在4版本中的列名和表结构是否有变化。如果您确认这些系统表和列名在4版本中没有改变,那么您可以直接使用提供的语句。

为了确保兼容性,您可以尝试运行提供的SQL语句,并检查结果。如果有任何错误,可以参考OceanBase 4版本的官方文档来调整查询语句。

更多信息请查看:

  1. 历史合并信息tablet_id查询
  2. 某租户下所有表占用磁盘大小
2 个赞

– 查找从未被使用的索引(访问次数为 0)

SELECT OBJECT_ID, NAME, OWNER, TOTAL_ACCESS_COUNT, TOTAL_EXEC_COUNT, LAST_USED

FROM oceanbase.DBA_INDEX_USAGE

WHERE TOTAL_ACCESS_COUNT = 0;

3 个赞

支持一下

2 个赞

支持+1

支持

2 个赞

来学习

2 个赞

OCP上能查到吗?

1 个赞

学习啦,要学就学最新的

1 个赞

嗯嗯,有道理!

666学习了

1 个赞

早 安$%