ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » Oracle专题深入讨论 » 关于show_space后的疑惑!

标题: 关于show_space后的疑惑!
离线 panweiweb
初级会员



精华贴数 0
个人空间 0
技术积分 1042 (1747)
社区积分 0 (601097)
注册日期 2005-9-7
论坛徽章:0
      
      

发表于 2008-5-21 15:06 
关于show_space后的疑惑!

SQL> exec show_space('MY_OBJECT','AUTO');
Total Blocks............................256
Total Bytes.............................2097152
Unused Blocks...........................64
Unused Bytes............................524288
Last Used Ext FileId....................17
Last Used Ext BlockId...................47240
Last Used Block.........................64

PL/SQL procedure successfully completed.

SQL> insert into my_object select * from my_object;

11448 rows created.


Execution Plan
----------------------------------------------------------
   0      INSERT STATEMENT Optimizer=CHOOSE
   1    0   TABLE ACCESS (FULL) OF 'MY_OBJECT'




Statistics
----------------------------------------------------------
         22  recursive calls
       1386  db block gets
        534  consistent gets
          0  physical reads
    1136844  redo size
        785  bytes sent via SQL*Net to client
        818  bytes received via SQL*Net from client
          4  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
      11448  rows processed

SQL> exec show_space('MY_OBJECT','AUTO');
Total Blocks............................384
Total Bytes.............................3145728
Unused Blocks...........................64 不知道为什么Unused Blocks 不管我INSERT还是DELETE都不发生变化!
Unused Bytes............................524288
Last Used Ext FileId....................18
Last Used Ext BlockId...................49416
Last Used Block.........................64
SQL> insert into my_object select * from my_object;

22896 rows created.


Execution Plan
----------------------------------------------------------
   0      INSERT STATEMENT Optimizer=CHOOSE
   1    0   TABLE ACCESS (FULL) OF 'MY_OBJECT'




Statistics
----------------------------------------------------------
         43  recursive calls
       2764  db block gets
        907  consistent gets
          0  physical reads----为什么物理读总是0呢?
    2279992  redo size
        787  bytes sent via SQL*Net to client
        818  bytes received via SQL*Net from client
          4  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
      22896  rows processed

SQL> select count(*) from my_object;


Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE
   1    0   SORT (AGGREGATE)
   2    1     TABLE ACCESS (FULL) OF 'MY_OBJECT'




Statistics
----------------------------------------------------------
          1  recursive calls
          1  db block gets
        569  consistent gets
          0  physical reads  ----为什么物理读总是0呢?
        120  redo size
        381  bytes sent via SQL*Net to client
        503  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed

SQL>  exec show_space('MY_OBJECT','AUTO');
Total Blocks............................640
Total Bytes.............................5242880
Unused Blocks...........................64
Unused Bytes............................524288
Last Used Ext FileId....................18
Last Used Ext BlockId...................49544
Last Used Block.........................64

PL/SQL procedure successfully completed.

SQL>


只看该作者    顶部
离线 sqysl
孤独剑客



来自 山东
精华贴数 0
个人空间 0
技术积分 1254 (1379)
社区积分 31 (6182)
注册日期 2006-12-20
论坛徽章:0
      
      

发表于 2008-5-22 16:33 
0  physical reads,是因为未从磁盘上读数据;

Unused Blocks...........................64,是因为每次操作时,已用和未用的块空间不够,扩展后并满足操作后,剩余的未使用的块数都是64,个人感觉凑巧而已,可以试着进行一些其他操作,比如:刷新缓冲后再进行操作,向表里插入一些其他数据而不是用表自身的数据,因为用表自身的数据在空间上规律性比较强。个人想法,可以试试看。


__________________
曾经沧海难为水,除却巫山不是云。
天若有情天亦老,人间正道是沧桑。
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问