このブログを検索

2011年6月14日火曜日

表領域にオブジェクトが残っているか調べる

使っていない表領域のはずなのに何かが残ってる・・・というときの調査です。
セグメントのサイズを確認するの応用です。

Oracleは、スキーマのデフォルト表領域とは別の表領域にオブジェクトを作成することができます。
そのため、うっかりミス等でこういうことが起こりえます。

dba_segmentsを表領域で検索し、スキーマ(OWNER)およびセグメント名を表示します。
set pages 10000
set lines 100
col owner for a30
col segment_name for a30
col type for a10
select owner,segment_name,segment_type as type from dba_segments
where tablespace_name='SSS01_S_DATA'
order by owner,segment_name;

実行例は次の通りです。
一番下のTESTUSERは、テスト用スキーマなのですが、誤ってこの表領域に作られてしまっています。
(人名や日付がついていたり酷いですね・・・)
OWNER                          SEGMENT_NAME                   TYPE
------------------------------ ------------------------------ ----------
SSS01D01USER                   BAK_FILE2_20101220             TABLE
SSS01D01USER                   M01_BATCHSTATE                 TABLE
SSS01D01USER                   SYS_C00157262                  INDEX
SSS01D01USER                   T01_FILEACCESSBATCH2_M         TABLE
SSS01D01USER                   T01_MAGICAPPITEM2_KEN          TABLE
SSS01D01USER                   T01_MAGIC_APPITEM_LIMIT2_KEN   TABLE
TESTUSER                       TEMP_USERLIST                  TABLE

0 件のコメント:

コメントを投稿