【ORACLE】テーブルの一覧やサイズを確認するSQL


ここではORACLEデータベースで、テーブルの一覧やサイズを確認するSQLを紹介しています。

テーブルの一覧を確認するSQL

テーブルの一覧は、DBA_TABLESを参照することで確認できます。
(ログインユーザにがアクセス可能なテーブルのみを確認する場合はALL_TABLESを参照します。)

select
    OWNER --テーブルの所有者
    ,TABLE_NAME --テーブル名
    ,TABLESPACE_NAME --表領域名
from
    ALL_TABLES a
order by
    TABLE_NAME
;

テーブルのサイズを確認するSQL

テーブルのサイズを確認するにはDBA_SEGMENTSを参照します。

DBA_SEGMENTSのBYTESには、オブジェクトに対して割り当てられたサイズが確認できます。

(ログインユーザにがアクセス可能なオブジェクトのみを確認する場合はALL_SEGMENTSを参照します。)

SELECT
    OWNER
    ,SEGMENT_NAME
    ,SEGMENT_TYPE
    ,BYTES
FROM
    DBA_SEGMENTS
;

DBA_SEGMENTSの主な列の意味は次の通りです。
・OWNER
 セグメント所有者のユーザー名
・SEGMENT_NAME
 セグメントがある場合、その名前
・PARTITION_NAME
 オブジェクト・パーティション名(非パーティション・オブジェクトの場合はNULL)
・SEGMENT_TYPE
 セグメントのタイプ:
 NESTED TABLE、TABLE、TABLE PARTITION、CLUSTER、LOBINDEX
 INDEX、INDEX PARTITION、LOBSEGMENT、TABLE SUBPARTITION
 INDEX SUBPARTITION、LOB PARTITION、LOB SUBPARTITION
 ROLLBACK、TYPE2 UNDO、DEFERRED ROLLBACK、TEMPORARY
 CACHE、SPACE HEADER、UNDEFINED
・BYTES
 バイト単位のサイズ

まとめ

テーブルの一覧やレコード件数はDBA_TABLESで確認できます。

テーブルのサイズはDBA_SEGMENTSで確認できます。

この他にも便利なSQLがあるのでぜひ使ってみてください。
【SQL】スキーマ(ユーザ)の一覧を確認する方法
【SQL】テーブルの一覧を確認する方法
【SQL】データ・レコード件数の多いテーブルを確認する方法
【SQL】パーティションテーブルの一覧を確認する方法
【SQL】表のパーティションごとの件数を確認する方法
【SQL】パーティションテーブルの設定内容を確認する方法