首页 > 解决方案 > Oracle 查找每列的数据量

问题描述

有人可以帮我开发一个查询来查找特定于列的数据量。所以我们有一个 clob 和 blob 数据类型列,我们需要在其中确定这两个列相对于日期字段的大小。象征性的逻辑是

select size(of column type clob/blob) from {table} where date (another column) >= {}

这里的想法是确定有资格进行内务管理的数据大小。

预期结果

在此处输入图像描述

标签: oracle

解决方案


尝试以下查询,

您可以过滤特定table的,column如果需要的话。

使用 DBA_ 视图:

SELECT l.owner,
       l.table_name,
       l.column_name,
       l.segment_name,
       l.tablespace_name,
       round(s.bytes/1024/1024,2) size_mb
FROM dba_lobs l
JOIN dba_segments s 
  ON s.owner = l.owner 
 AND s.segment_name = l.segment_name
ORDER BY 6 DESC;

使用 User_ 视图:

SELECT l.table_name,
       l.column_name,
       l.segment_name,
       l.tablespace_name,
       round(s.bytes/1024/1024,2) size_mb
FROM user_lobs l
JOIN user_segments s 
  ON s.segment_name = l.segment_name
ORDER BY 5 DESC;

推荐阅读