ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 分区表实际使用数据块的块数远小于系统分配块数

分区表实际使用数据块的块数远小于系统分配块数

原创 Linux操作系统 作者:DataKW 时间:2013-04-05 16:26:26 0 删除 编辑
分区表的一个分区,实际使用4262个块,而系统扩展分配了366592个块,系统监控显示,小于5分钟内空间扩展了3.5个G,导致分区所在的表空间被撑爆!
 数据库版本:Release 10.2.0.4.0

1、实际使用的块查询:
select fno,rbn,count(0) from  (select dbms_rowid.rowid_relative_fno(rowid) fno,dbms_rowid.rowid_block_number(rowid) rbn,dbms_rowid.rowid_row_number(rowid) rrn from  table_name partition(part_17) ) tab group by fno,rbn ;
查询结果:4262

2、系统扩展分配的块查询:
select sum(BLOCKS) from dba_extents where segment_name='TABLE_NAME' AND PARTITION_NAME='PART_17';
查询结果:366592
 
3、这个表的记录数:
select count(0) from TABLE_NAME partition(part_17);
   COUNT(0)
----------
    110656----每行平均长度265个字节
 
4、dba_segments记录
select t.segment_name,t.partition_name,t.BYTES/1024/1024/1024,t.blocks*8/1024/1024 from dba_segments  t where t.segment_name='T_INFO_ACCOUNT' and t.PARTITION_NAME='PART_17';
T_INFO_ACCOUNT                                                        PART_17                               2.796875          2.796875
 
5、DBA_TAB_MODIFICATIONS记录:
SQL> SELECT * FROM DBA_TAB_MODIFICATIONS where table_name = 'T_INFO_ACCOUNT' AND PARTITION_NAME='PART_17';

TABLE_OWNER                    TABLE_NAME                     PARTITION_NAME                 SUBPARTITION_NAME                 INSERTS    UPDATES    DELETES TIMESTAMP           TRU DROP_SEGMENTS
------------------------------ ------------------------------ ------------------------------ ------------------------------ ---------- ---------- ---------- ------------------- --- -------------
BTUPAYPROD                     T_INFO_ACCOUNT                 PART_17                                                             1891      17237          0 2013/04/04 06:58:03 NO              0
6、DBA_TAB_PARTITIONS记录:
SQL>  select * from dba_tab_partitions where table_name = 'T_INFO_ACCOUNT' AND PARTITION_NAME='PART_17';

TABLE_OWNER                    TABLE_NAME                     COM PARTITION_NAME                 SUBPARTITION_COUNT HIGH_VALUE                                                                       HIGH_VALUE_LENGTH PARTITION_POSITION TABLESPACE_NAME                  PCT_FREE   PCT_USED  INI_TRANS  MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENT MAX_EXTENT PCT_INCREASE  FREELISTS FREELIST_GROUPS LOGGING COMPRESS   NUM_ROWS     BLOCKS EMPTY_BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN SAMPLE_SIZE LAST_ANALYZED       BUFFER_ GLO USE
------------------------------ ------------------------------ --- ------------------------------ ------------------ -------------------------------------------------------------------------------- ----------------- ------------------ ------------------------------ ---------- ---------- ---------- ---------- -------------- ----------- ---------- ---------- ------------ ---------- --------------- ------- -------- ---------- ---------- ------------ ---------- ---------- ----------- ----------- ------------------- ------- --- ---
BTUPAYPROD                     T_INFO_ACCOUNT                 NO  PART_17                                         0 '420000'                                                                                         8                 17 TBS_CUSTOMER_ACCOUNT_DATA01            10                     1        255          65536                      1 2147483645                                         YES     DISABLED     108860       4150           74       1014          0         268       23964 2013/03/27 04:23:55 DEFAULT NO  NO

SQL>
 
7、dbms_space.space_usage确认:
 
declare
        v_unformatted_blocks number;
        v_unformatted_bytes number;
        v_fs1_blocks number;
        v_fs1_bytes number;
        v_fs2_blocks number;
        v_fs2_bytes number;
        v_fs3_blocks number;
        v_fs3_bytes number;
       v_fs4_blocks number;
       v_fs4_bytes number;
       v_full_blocks number;
       v_full_bytes number;
     begin
      dbms_space.space_usage ('&OWNER', '&TABNAME','TABLE PARTITION', v_unformatted_blocks,
      v_unformatted_bytes, v_fs1_blocks, v_fs1_bytes, v_fs2_blocks, v_fs2_bytes,
      v_fs3_blocks, v_fs3_bytes, v_fs4_blocks, v_fs4_bytes, v_full_blocks, v_full_bytes, '&PARTNAME');
     dbms_output.put_line('Unformatted Blocks = '||v_unformatted_blocks);
     dbms_output.put_line('FS1 Blocks              = '||v_fs1_blocks);
     dbms_output.put_line('FS2 Blocks              = '||v_fs2_blocks);
     dbms_output.put_line('FS3 Blocks              = '||v_fs3_blocks);
     dbms_output.put_line('FS4 Blocks              = '||v_fs4_blocks);
     dbms_output.put_line('Full Blocks              = '||v_full_blocks);
     end;
     /


Unformatted Blocks = 360827
FS1 Blocks              = 3
FS2 Blocks              = 2
FS3 Blocks              = 12
FS4 Blocks              = 758
Full Blocks              = 4147

PL/SQL procedure successfully completed.
 
8、dba_tables碎片化情况:
SELECT TABLE_NAME ,  (BLOCKS *8192 / 1024/1024 ) - (NUM_ROWS*AVG_ROW_LEN/1024/1024)
"Data lower than HWM in MB"   FROM  DBA_TABLES WHERE  UPPER(owner) =UPPER('&OWNER') order by 2 desc;
TABLE_NAME                     Data lower than HWM in MB
------------------------------ -------------------------
T_INFO_ACCOUNT                                1382.59251
 
 
9、表空间使用情况
 select tablespace_name, allocated_space,used_space,reclaimable_space from table(dbms_space.asa_recommendations('TRUE', 'TRUE', 'ALL'));
TABLESPACE_NAME                ALLOCATED_SPACE USED_SPACE RECLAIMABLE_SPACE
------------------------------ --------------- ---------- -----------------
TBS_CUSTOMER_ACCOUNT_DATA01         2906192651 2428736597         477456054
 
 
SQL> select segment_name,sum(bytes) from dba_extents  t where t.tablespace_name='TBS_CUSTOMER_ACCOUNT_DATA01' group by segment_name;
SEGMENT_NAME                   SUM(BYTES)
------------------------------ ----------
T_INFO_CUSTOMER                2615148544
T_INFO_ACCOUNT           5678039040----这地方有问题,具体到那个表
SYS_LOB0000191670C00039$$          524288
SYS_IL0000191670C00039$$           524288
SQL> select segment_name,sum(bytes) from dba_extents  t where t.tablespace_name='TBS_CUSTOMER_ACCOUNT_DATA02' group by segment_name;
SEGMENT_NAME                   SUM(BYTES)
------------------------------ ----------
T_INFO_CUSTOMER                3002073088
T_INFO_ACCOUNT                 2768240640
SYS_LOB0000191670C00039$$          524288
SYS_IL0000191670C00039$$           524288
SQL> select segment_name,sum(bytes) from dba_extents  t where t.tablespace_name='TBS_CUSTOMER_ACCOUNT_DATA03' group by segment_name;
SEGMENT_NAME                   SUM(BYTES)
------------------------------ ----------
I_CUSTOMER_P_PRODUCT           1207959552
T_INFO_CUSTOMER                2738880512
T_INFO_ACCOUNT                 2690646016
SYS_LOB0000191670C00039$$          524288
SYS_IL0000191670C00039$$           524288
SQL> select segment_name,sum(bytes) from dba_extents  t where t.tablespace_name='TBS_CUSTOMER_ACCOUNT_DATA04' group by segment_name;
SEGMENT_NAME                   SUM(BYTES)
------------------------------ ----------
T_INFO_CUSTOMER                2193620992
T_INFO_ACCOUNT                 2337275904
SYS_LOB0000191670C00039$$          524288
SYS_IL0000191670C00039$$           524288
 
 
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27573546/viewspace-757775/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-08-12

  • 博文量
    132
  • 访问量
    331526