数据占用容量问题

分区表stock_market_data_history与stock_market_data_history_bak相同的数据量
。为啥分区表累计占用容量只是stock_market_data_history_bak表容量的1/3


正常数据有周期性的merge

意思是相同数据量,排除压缩,不关乎分区,表正常占用容量是一样的。

1 个赞

压缩算法使用是一致的,OB正常对写入数据有周期的merge到大的sstable在进行数据编码压缩

1 个赞



相同的表占用量,查不同的系统表,得出来的容量不一样,这是为什么?

你好,能否给出查询不同系统表分别 对 这两个表的结果

麻烦提供下语句

我的意思是,对于你提供的两个数据表,使用你的查询语句(2个系统表),看一下分别得到的结果



就是用不同的系统表,查询同一张业务表,统计出来的业务表的数据容量结果不一样啊

information_schema.tables表所查询到的内容可能不准。OB_SSTABLES给出的size是数据实际占用大小,不包含一些padding的空间,如果是看数据有效载荷的占用容量,OB_SSTABLES相对更准一点。如果想要统计物理空间占用,可以在合并完成后查看__all_virtual_disk_stat;

information_schema.tables里的数据量是压缩前的一个值

那请问分区表压缩前的值怎么查

压缩前的数据量就是通过information_schema.tables表中的data_length来查询的。压缩后的可以通过GV$OB_SSTABLES来统计,如果需要更精细一点可以将memtable和sstable区分开,memtable取表中的size,sstable取表中的data_block_cnt * 2MB(宏块大小)


但分区表用information_schema.tables表一直返回是NULL值,做过转储合并也是一样

数据量很少吗

不少哦,GV$OB_SSTABLES来统计出有65G

table_schema和table_name确定匹配么

非常肯定的

好的,我找个sql同学帮忙看下

ob版本是哪个