Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak obliczyć rozmiar tabel w Oracle?

Możesz być zainteresowany tym zapytaniem. Informuje, ile miejsca jest przydzielone dla każdej tabeli, biorąc pod uwagę indeksy i dowolne obiekty LOB w tabeli. Często interesuje Cię pytanie „Ile miejsc zajmuje tabela Zamówienia zakupu, w tym wszelkie indeksy”, a nie tylko sama tabela. Zawsze możesz zagłębić się w szczegóły. Pamiętaj, że wymaga to dostępu do widoków DBA_*.

COLUMN TABLE_NAME FORMAT A32
COLUMN OBJECT_NAME FORMAT A32
COLUMN OWNER FORMAT A10

SELECT
   owner, 
   table_name, 
   TRUNC(sum(bytes)/1024/1024) Meg,
   ROUND( ratio_to_report( sum(bytes) ) over () * 100) Percent
FROM
(SELECT segment_name table_name, owner, bytes
 FROM dba_segments
 WHERE segment_type IN ('TABLE', 'TABLE PARTITION', 'TABLE SUBPARTITION')
 UNION ALL
 SELECT i.table_name, i.owner, s.bytes
 FROM dba_indexes i, dba_segments s
 WHERE s.segment_name = i.index_name
 AND   s.owner = i.owner
 AND   s.segment_type IN ('INDEX', 'INDEX PARTITION', 'INDEX SUBPARTITION')
 UNION ALL
 SELECT l.table_name, l.owner, s.bytes
 FROM dba_lobs l, dba_segments s
 WHERE s.segment_name = l.segment_name
 AND   s.owner = l.owner
 AND   s.segment_type IN ('LOBSEGMENT', 'LOB PARTITION')
 UNION ALL
 SELECT l.table_name, l.owner, s.bytes
 FROM dba_lobs l, dba_segments s
 WHERE s.segment_name = l.index_name
 AND   s.owner = l.owner
 AND   s.segment_type = 'LOBINDEX')
WHERE owner in UPPER('&owner')
GROUP BY table_name, owner
HAVING SUM(bytes)/1024/1024 > 10  /* Ignore really small tables */
ORDER BY SUM(bytes) desc
;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyłączyć wyzwalacz w Oracle SQL Developer?

  2. BatchUpdateException:partia nie zostanie zakończona

  3. Baza danych Oracle wisi w nieskończoność w zapytaniach UPDATE

  4. Oracle Sequence nextval przeskakuje numer w tę i z powrotem

  5. Najlepszy sposób na wstawianie wielu wierszy w Oracle?