Jak oszacować rozmiary tabel w schemacie (Oracle)

11

Próbuję oszacować rozmiary tabel w ramach mojego schematu (w MB). Oto co mam do tej pory:

SELECT table_name, owner, last_analyzed
FROM all_tables

Jestem dość nowy w SQL, więc nie mam pojęcia, jak to zrobić.

Dziękuję Ci.

Diego R.
źródło

Odpowiedzi:

10

Spójrz na widok „dba_segments” (lub user_segments, jeśli nie masz uprawnień dba). Poniższe zapytanie powinno dać ci to, czego szukasz:

select
  owner as "Schema"
  , segment_name as "Object Name"
  , segment_type as "Object Type"
  , round(bytes/1024/1024,2) as "Object Size (Mb)"
  , tablespace_name as "Tablespace"
from dba_segments
order by owner;
Benoit
źródło
Cześć Benoit, działało idealnie, dziękuję. Spojrzałem na pola tabeli, których mogłem użyć, ale nie mogłem znaleźć „Właściciela” ani ostatnio zaktualizowanych pól. Nawiasem mówiąc, użyłem widoku user_segments. Czy te informacje będą dostępne na stronie dba_segments?
Diego R
Wszystkie segmenty pokazane w sekcjach user_segments są własnością konta użytego do zalogowania się, dlatego nie ma kolumny właściciela.
Benoit
Poprawny prefiks dla 1024/1024 jest Miraczej niż M(patrz Przedrostek binarny )
Wernfried Domscheit