【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】社区版4.2.1
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
GV$DML_STATS中的字段OBJN,对应分区表怎么查询?
@论坛小助手
【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】社区版4.2.1
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
GV$DML_STATS中的字段OBJN,对应分区表怎么查询?
@论坛小助手
根据文档库中的信息,GV$DML_STATS
视图中的 OBJ#
字段表示对象的唯一标识符,即对象ID。对于分区表,可以通过该视图来查询每个分区的 DML 统计信息。但是,要具体查询分区表的 DML 统计信息,您需要结合表的元数据信息,如 ALL_TAB_PARTITIONS
或 ALL_TAB_SUBPARTITIONS
视图,来获取分区的 OBJ#
。
以下是查询分区表 DML 统计信息的一个示例步骤:
查询分区表的分区信息:使用 ALL_TAB_PARTITIONS
或 ALL_TAB_SUBPARTITIONS
视图来获取分区表的分区信息及其对应的 OBJ#
。
-- 查询分区表的分区信息
SELECT
TABLE_NAME,
PARTITION_NAME,
SUBPARTITION_NAME,
OBJECT_ID AS OBJ#
FROM
ALL_TAB_PARTITIONS
WHERE
TABLE_NAME = 'your_partitioned_table_name'
AND
TABLE_OWNER = 'your_schema_name';
查询 GV$DML_STATS
视图:使用上一步获取的 OBJ#
来查询 GV$DML_STATS
视图,获取每个分区的 DML 统计信息。
-- 查询分区表的 DML 统计信息
SELECT
OBJ#,
INSERTS,
UPDATES,
DELETES,
TIMESTAMP
FROM
GV$DML_STATS
WHERE
OBJ# IN (
SELECT OBJECT_ID
FROM ALL_TAB_PARTITIONS
WHERE TABLE_NAME = 'your_partitioned_table_name'
AND TABLE_OWNER = 'your_schema_name'
);
通过上述步骤,您可以查询到分区表各个分区的 DML 统计信息。 [7]
具体信息可参考以下文档:
小助手提供的语句 能解决你的问题么?
社区版没有小助手提供的视图
用oceanbase.DBA_OBJECTS里面的object_id字段去查询,分区表的也是在GV$DML_STATS匹配不到
试试用cdb_ob_table_locations 的table_id。小助手提供的是oracle模式的忽略掉