查看表的使用情况

查看表的使用情况
1.查看表的使用情况的一些指标
SELECT  TABLE_NAME, -- 表名
       BLOCKS, -- 总的块数
       EMPTY_BLOCKS, -- 空块数
       PCT_FREE, -- 不解释
       NUM_ROWS, -- 表的行数
       AVG_USED_BLOCKS, -- 平均使用的块数
       CHAIN_PER, -- 行迁移OR行链接数
       GREATEST( ROUND ( 100   *  (NVL(HWM  -  AVG_USED_BLOCKS,  0 /
                      GREATEST(NVL(HWM, 
1 ),  1 )),
                      
2 ),
                
0 ) WASTE_PER  -- 浪费的百分比
   FROM  ( SELECT  B.TABLE_NAME,
               A.BLOCKS,
               B.EMPTY_BLOCKS,
               B.PCT_FREE,
               B.NUM_ROWS,               
               (A.BLOCKS 
-  B.EMPTY_BLOCKS  -   1 ) HWM,
               
ROUND ((B.AVG_ROW_LEN  *  NUM_ROWS  *  ( 1   +  (PCT_FREE  /   100 )))  /   8192 ,
                     
0 AS  AVG_USED_BLOCKS,
               
ROUND ( 100   *
                     (NVL(B.CHAIN_CNT, 
0 /  GREATEST(NVL(B.NUM_ROWS,  1 ),  1 )),
                     
2 ) CHAIN_PER
        
          
FROM  DBA_SEGMENTS A, DBA_TABLES B
         
WHERE  A.OWNER  =  B.OWNER
           
AND  A.SEGMENT_NAME  =  B.TABLE_NAME
              
-- AND A.SEGMENT_TYPE = 'TABLE'
            AND  A.TABLESPACE_NAME  =  B.TABLESPACE_NAME
           
AND  B.TABLESPACE_NAME  =   ' 表空间名字 ' )

2.其中的8192可以查DBA_TABLESPACES (TS$)获取
SELECT  T.TABLESPACE_NAME,T.BLOCK_SIZE  FROM  DBA_TABLESPACES T

你可能感兴趣的:(查看表的使用情况)