簡體   English   中英

如何在一次查詢中獲取所有者的姓名、他們的 object 名稱和此 object 的大小?

[英]How to get name of owners, their object names and sizes of this object in one query?

我想檢查哪個用戶的對象是最大的。 所以我做了查詢給了我每個用戶的對象的總大小:

select
  owner,
  tablespace_name,
  round((sum(bytes)/1024/1024/1024),2) as size_in_gb,
  (select round((sum(bytes)/1024/1024/1024),2) from v$datafile) as total_space_in_gb
from
   dba_segments
where
   owner like 'OPS$%'
group by
 owner, tablespace_name
order by
  size_in_gb desc
fetch first 55 rows only;

但它只給我有關特定用戶的所有對象的總大小的信息。 如何檢查每個用戶對象及其大小?

segment_name添加到您的select列表和您的group by

select
  segment_name,
  owner,
  tablespace_name,
  round((sum(bytes)/1024/1024/1024),2) as size_in_gb,
  (select round((sum(bytes)/1024/1024/1024),2) from v$datafile) as total_space_in_gb
from
   dba_segments
where
   owner like 'OPS$%'
group by
 segment_name, owner, tablespace_name
order by
  size_in_gb desc
fetch first 55 rows only;

但是,您的v$datafile查詢在做什么並不明顯。 這是對每個數據文件的大小求和,而不僅僅是與OPS$用戶擁有對象的表空間相關聯的那些。 產生有意義的數字並不明顯,更不用說您希望在結果的每一行上復制的數字。 但是,如果您在結果中獲得分段級別的數據,那么您希望在該列中獲得什么值並不明顯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM