暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 计算部分表大小

askTom 2017-04-23
216

问题描述

你好,

我需要复制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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论