Oracle table fragmentation how to calculate or get the actual used blocks of the table

Oracle表格碎片化:如何计算实际使用的块数

Oracle table fragmentation how to calculate or get the actual used blocks of the table

from:http://www.almohem.com/oracle/space-managment/oracle-table-fragmentation-how-to-calculate-or-get-the-actual-used-blocks-of-the-table/

Oracle table fragmentation, how to calculate used block of the table ?


Ans:
1. To get the total space allocated to the table (this includes : used blocks+fragmentation) you can select bytes
from dba_segments :

SQL> select bytes/1024/1024
from dba_segments where segment_name = 'EI_AIR_REQ_LOG';

BYTES/1024/1024
---------------
            472

2. Select number of rows :

SQL> select count(*) from M_EAI_WMPROD.EI_AIR_REQ_LOG;

  COUNT(*)
----------
    300094

3. Select actual blocks used by the this table :
SQL>  SELECT
COUNT(DISTINCT DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid)||
DBMS_ROWID.ROWID_RELATIVE_FNO(rowid))
"Used" from M_EAI_WMPROD.EI_AIR_REQ_LOG;

      Used
----------
     60021

4. Translate the block number to mega bytes (block size = 8192 byte) as follow
SQL> select 60021*8192/1024/1024 "MB Used" from dual;

   MB Used
----------
468.914063

SQL>

As you can see from this example this table does not contains much fragmentation and hence does not require storage reorganization.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值