ORACLE中如何查看数据库对象和数据文件的对应关系?

Oracle数据库中,我们怎样查看表空间或数据文件包含哪些数据库对象呢?有怎样查看数据库对象所在的表空间及数据文件呢?
本文将提供一些查询脚本,供大家参考。

一、查看某个表空间包含哪些对象

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;

三、查看数据库对象属于哪个表空间

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

四、查看数据库对象属于哪个数据文件

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值