zoukankan      html  css  js  c++  java
  • ORACLE中如何找出大表分布在哪些数据文件中?

    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数据库当中,我们即可找出一个数据文件中保存有哪些对象, 又可以通过对象名(表名、索引名)定位到当前对象分布在哪些数据文件当中。

  • 相关阅读:
    TCP /IP协议的理解
    Linux 文件大小跟踪命令
    关于3D旋转的本质
    Unity旋转
    QT解析XML(机械拆装)
    红黑树总结
    EXCEPTIONS
    算数运算符注意事项
    java中常用的转义字符
    常量和数据类型
  • 原文地址:https://www.cnblogs.com/kerrycode/p/12370541.html
Copyright © 2011-2022 走看看