问题描述
你好,
我需要复制SOME_TABLE数据的30%,总共占用3tb。
有没有办法估计表记录30% 的 “实际” 大小?
我知道通过使用简单的数学运算它是〜900gb,但是由于CLOB数据类型等原因,这可能会有所不同。所以我想知道这是否可以通过对dict视图或数据本身的查询来计算?
我需要复制SOME_TABLE数据的30%,总共占用3tb。
有没有办法估计表记录30% 的 “实际” 大小?
我知道通过使用简单的数学运算它是〜900gb,但是由于CLOB数据类型等原因,这可能会有所不同。所以我想知道这是否可以通过对dict视图或数据本身的查询来计算?
专家解答
如果每行的大小变化很大,那么您需要显式查询行以获得接近的信息。
所以一个粗略的指南是这样的:
如果你想要 * 精确 * 的答案,你可以使用转储功能,但这似乎是过分的。
所以一个粗略的指南是这样的:
select sum( length(varchar2_col)+ -- string 7 + -- date col 13 + -- timestamp col length(num_col)/2 + -- numeric col dbms_lob.getlength(c) -- lob col ) from my_table where ...
如果你想要 * 精确 * 的答案,你可以使用转储功能,但这似乎是过分的。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




