Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara menghitung ukuran tabel di Oracle

Anda mungkin tertarik dengan kueri ini. Ini memberi tahu Anda berapa banyak ruang yang dialokasikan untuk setiap tabel dengan mempertimbangkan indeks dan LOB apa pun di atas meja. Seringkali Anda tertarik untuk mengetahui "Berapa banyak ruang yang dibutuhkan tabel Pesanan Pembelian, termasuk indeks apa pun" daripada hanya tabel itu sendiri. Anda selalu dapat mempelajari detailnya. Perhatikan bahwa ini memerlukan akses ke tampilan 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. Kolom identitas Oracle dan masukkan ke pilih

  2. Menggunakan Oracle menggabungkan tiga tabel menjadi satu dengan PIVOT

  3. Apakah mungkin untuk mengeluarkan pernyataan SELECT dari blok PL/SQL?

  4. Saat membuka koneksi Oracle, objek koneksi adalah null

  5. Mengekstrak jumlah total detik dari tipe data interval