【 使用环境 】测试环境
【 OB or 其他组件 】Oceanbase 社区版 三节点分布式集群
【 使用版本 】V 4.3.5
【问题描述】
在工作负载运行过程中 LSMTree 不同类型 SSTable 数量及大小的查询
背景
资源池 和 租户建立
CREATE RESOURCE POOL tpcc_pool_01
UNIT='tpcc_unit_config', UNIT_NUM=1, ZONE_LIST=('zone1','zone2','zone3');
CREATE TENANT IF NOT EXISTS tpcc_tenant1
RESOURCE_POOL_LIST=('tpcc_pool_01'),
PRIMARY_ZONE='zone1', zone_list('zone1', 'zone2', 'zone3'),
locality='F@zone1,F@zone2,F@zone3'
set variables ob_compatibility_mode='mysql',
ob_tcp_invited_nodes='%';
查询 SSTable 语句
SELECT l.database_name, l.table_name, m.svr_ip, m.table_type
, m.size as size_bytes -- 直接列出每个 table_type 的大小(字节)
, round(m.size/1024/1024,2) data_size_mb
FROM GV$OB_SSTABLES m
join oceanbase.cdb_ob_table_locations l
on (m.tenant_id=l.tenant_id and m.tablet_id=l.tablet_id)
WHERE m.tenant_id=1002
and l.database_name in ('ob_sysbench')
and l.table_name in ('sbtest1')
ORDER BY l.database_name, l.table_name, m.svr_ip, m.table_type;
SELECT l.database_name, l.table_name, m.svr_ip, m.tablet_id
, case m.table_type
when 10 then 'MAJOR_SSTABLE'
when 11 then 'MINOR_SSTABLE'
when 12 then 'MINI_SSTABLE'
when 17 then 'COLUMN_ORIENTED_SSTABLE'
when 18 then 'NORMAL_COLUMN_GROUP_SSTABLE'
when 21 then 'DDL_MERGE_CO_SSTABLE'
when 27 then 'MDS_MINOR_SSTABLE'
when 26 then 'MDS_MINI_SSTABLE'
else concat(m.table_type,':','UNKOWN') end as mgr_table_type
, m.size as size_bytes -- 直接列出每个 table_type 的大小(字节)
, round(m.size/1024/1024,2) data_size_mb
FROM oceanbase.__all_virtual_table_mgr m
join oceanbase.cdb_ob_table_locations l
on (m.tenant_id=l.tenant_id and m.tablet_id=l.tablet_id)
WHERE m.tenant_id=1002
and m.table_type >= 1
and l.database_name in ('ob_sysbench')
and l.table_name in ('sbtest1')
ORDER BY l.database_name, l.table_name, m.svr_ip, m.table_type;
SELECT l.database_name, l.table_name, m.svr_ip, m.tablet_id, m.table_type,
m.svr_port, m.END_LOG_SCN, m.UPPER_TRANS_VERSION,
m.size as size_bytes -- 直接列出每个 table_type 的大小(字节)
-- round(m.size/1024/1024,2) data_size_mb
FROM GV$OB_SSTABLES m
join oceanbase.cdb_ob_table_locations l
on (m.tenant_id=l.tenant_id and m.tablet_id=l.tablet_id and m.svr_ip = l.svr_ip)
WHERE m.tenant_id=1002
and l.database_name in ('ob_sysbench')
and l.table_name like 'sbtest%'
ORDER BY l.database_name, l.table_name, m.svr_ip, m.table_type;