ORACLE でデータベース オブジェクトとデータ ファイル間の対応を表示する方法を教えてください。

Oracle データベースでは、どのデータベース オブジェクトがテーブルスペースまたはデータ ファイルに含まれているかをどのように確認しますか? データベース オブジェクトが配置されているテーブル スペースとデータ ファイルを表示する方法を教えてください。
この記事では、参照用にいくつかのクエリ スクリプトを提供します。

1. 表領域に含まれるオブジェクトを確認する

SELECT TABLESPACE_NAME,
       SEGMENT_NAME,
       SUM(BYTES)/1024/1024 SEGMENT_SIZE_M 
FROM DBA_SEGMENTS
WHERE TABLESPACE_NAME='&TABLESPACE_NAME'
GROUP BY TABLESPACE_NAME,SEGMENT_NAME;

また、次の SQL ステートメントを使用して、テーブルスペース内のオブジェクトを表示します。

SELECT OWNER,
       'TABLE'      SEGMENT_TYPE,
       TABLE_NAME   SEGMENT_NAME
FROM DBA_TABLES 
WHERE TABLESPACE_NAME='&TABLESPACE_NAME'
UNION ALL
SELECT OWNER,
       'INDEX'      SEGMENT_TYPE,
       INDEX_NAME   SEGMETN_NAME
FROM DBA_INDEXES 
WHERE TABLESPACE_NAME='&TABLESPACE_NAME'
UNION ALL
SELECT OWNER,
       'LOBSEGMENT'  SGEMENT_TYPE,
       SEGMENT_NAME  SEGMENT_NAME
FROM DBA_LOBS 
WHERE TABLESPACE_NAME='&TABLESPACE_NAME';

次に、これらのデータベース オブジェクトを含むデータ ファイルを表示します。

SELECT  A.OWNER,
        A.SEGMENT_NAME,
        A.SEGMENT_TYPE,
        B.FILE_NAME,
        SUM(A.BYTES)/1024/1024 SEGMENT_SIZE_M
FROM DBA_EXTENTS A
INNER JOIN DBA_DATA_FILES B ON A.FILE_ID= B.FILE_ID
WHERE B.FILE_ID =&FILE_ID
GROUP BY  A.OWNER,A.SEGMENT_NAME,A.SEGMENT_TYPE,B.FILE_NAME;

また

SELECT  A.OWNER,
        A.SEGMENT_NAME,
        A.SEGMENT_TYPE,
        B.FILE_NAME,
        SUM(A.BYTES)/1024/1024 SEGMENT_SIZE_M
FROM DBA_EXTENTS A
INNER JOIN DBA_DATA_FILES B ON A.FILE_ID= B.FILE_ID
WHERE B.FILE_NAME ='&FILE_NAME'
GROUP BY  A.OWNER,A.SEGMENT_NAME,A.SEGMENT_TYPE,B.FILE_NAME;

3. データベース オブジェクトが属するテーブルスペースを表示する

SELECT TABLE_NAME, TABLESPACE_NAME
  FROM USER_TABLES
 WHERE TABLE_NAME = '&TABLE_NAME';

4. データベース オブジェクトが属するデータ ファイルを表示する

SELECT  A.OWNER, 
        A.SEGMENT_TYPE,
        A.SEGMENT_NAME,
        A.PARTITION_NAME,
        A.TABLESPACE_NAME,
        B.FILE_NAME,
        SUM(A.BYTES)/1024/1024  SEGMENT_SIZE_M
FROM DBA_EXTENTS A
INNER JOIN DBA_DATA_FILES B ON A.FILE_ID= B.FILE_ID
WHERE   A.OWNER='&OWNER'
        AND A.SEGMENT_NAME='&SEGMENT_NAME'
GROUP BY A.OWNER,A.SEGMENT_TYPE,A.PARTITION_NAME,A.SEGMENT_NAME,A.TABLESPACE_NAME,B.FILE_NAME;

おすすめ

転載: blog.csdn.net/Ruishine/article/details/129881403