ORACLE中如何找出大表分布在哪些数据文件中?

2023-04-12编程技术180019

ORACLE中如何找出大表分布在哪些数据文件中?

 

在ORACLE数据中,我们能否找出一个大表的段对象分布在哪些数据文件中呢? 答案是可以,我们可以用下面脚本来找出对应表的区、段分别位于哪些数据文件中

SET PAGESIZE 60;

COL SEGMENT_TYPE FOR A12;

COL FILE_NAME FOR A64;

COL SEGMENT_NAME FOR A24;

COL TABLESPACE_NAME FOR A24;

COL SEGMENT_OWNER FOR A12;

SELECT E.OWNER                    AS SEGMENT_OWNER, 

       E.SEGMENT_TYPE             AS SEGMENT_TYPE, 

       E.SEGMENT_NAME             AS SEGMENT_NAME, 

       E.PARTITION_NAME           AS PARTITION_NAME, 

       E.TABLESPACE_NAME          AS TABLESPACE_NAME, 

       F.FILE_NAME                AS FILE_NAME, 

       SUM(E.BYTES) / 1024 / 1024 AS SEGMENT_SIZE 

INNER JOIN DBA_DATA_FILES F ON E.FILE_ID= F.FILE_ID

WHERE         E.OWNER='&OWNER'

        AND E.SEGMENT_NAME='&SEGMENT_NAME'

GROUP BY E.OWNER

        ,E.SEGMENT_TYPE

        ,E.PARTITION_NAME

        ,E.SEGMENT_NAME

        ,E.TABLESPACE_NAME

        ,F.FILE_NAME

ORDER BY SEGMENT_SIZE DESC;

其实之前写过一篇博客“ORACLE查看数据文件包含哪些对象,这个脚本只是那个脚本的“变异版本”,本质没有区别。所以,在ORACLE数据库当中,我们即可找出一个数据文件中保存有哪些对象, 又可以通过对象名(表名、索引名)定位到当前对象分布在哪些数据文件当中。

ORACLE中如何找出大表分布在哪些数据文件中?的相关教程结束。

本文地址:https://www.ufcn.cn/tutorials/2453284.html

如非特殊说明,本站内容均来自于网友自主分享,概不代表本站观点,如有任何问题我们都将在收到反馈后的第一时间进行处理!