如何查询ob分区表的大小?

【 使用环境 】 测试环境
【 OB or 其他组件 】OB
【 使用版本 】3\4
【问题描述】如何查询ob分区表的大小?目前查看官方文档 DBA_TAB_PARTITIONS 中 NUM_ROWS 显示暂不支持,information_schema.TABLES 表中的 TABLE_ROWS 字段也为 0

3 个赞

@论坛小助手

3 个赞

为了查询OceanBase中分区表的大小,可以通过查询 DBA_TAB_PARTITIONS 或者 information_schema.PARTITIONS 来获取每个分区的具体信息,包括行数等。但由于您提到这两个表中有关行数的字段目前显示为暂不支持或者为0,您可以尝试直接通过SQL查询表的大小。以下是针对分区表的SQL查询示例,可以帮助您获取分区表各分区的磁盘使用情况:

SELECT 
  TABLE_SCHEMA, 
  TABLE_NAME, 
  PARTITION_NAME, 
  sum(DATA_LENGTH + INDEX_LENGTH) as PARTITION_SIZE 
FROM 
  information_schema.PARTITIONS 
WHERE 
  TABLE_SCHEMA = 'your_database_name' AND 
  TABLE_NAME = 'your_partition_table_name' 
GROUP BY 
  TABLE_SCHEMA, 
  TABLE_NAME, 
  PARTITION_NAME;

此查询将返回表中每个分区的总大小(以字节为单位)。请注意替换 your_database_nameyour_partition_table_name 为您实际使用的数据库名和表名。

更多信息请查看:

  1. 某租户下所有表占用磁盘大小
  2. 使用 OceanBase 数据库分区表进行水平拆分
4 个赞

你这个是查询使用空间大小还是数量大小呢?
数量大小可以使用select count() 与union all .
select count(
) from t1 partition(p0) union all select count(*) from t1 partition(p1);

6 个赞

这两张表关联查询可以看表的数据大小和实际占用磁盘大小

  • cdb_ob_tablet_replicas
  • CDB_OB_TABLE_LOCATIONS
6 个赞

试试字典视图CDB_OB_TABLE_LOCATIONS

4 个赞

你好,只能使用 select count 语句吗,有没有什么统一的视图可以全部查询出来

1 个赞

学习了