zoukankan      html  css  js  c++  java
  • blocks

    1.查看一个表空间,有多少个extents,多少blocks,多少空余空间。
    select a.tablespace_name, sumblocks, nvl(usedextents, 0) usedextents, 
               nvl(usedblocks, 0) usedblocks, freeblocks, 
               nvl(usedblocks,0) + nvl(freeblocks,0)checkblocks, 
               sumblocks-nvl(usedblocks, 0)-nvl(freeblocks,0) minblocks
    from (select tablespace_name, sum(blocks) sumblocks from dba_data_files 
                 group by tablespace_name ) A, 
               (select tablespace_name, sum(extents) usedextents, sum(blocks) usedblocks from dba_segments
                group by tablespace_name ) B, 
              (select tablespace_name, sum(blocks) freeblocks from dba_free_space
               group by tablespace_name ) C  
    where a.tablespace_name=b.tablespace_name(+)
     12       and a.tablespace_name=c.tablespace_name(+);
     
    TABLESPACE_NAME         SUMBLOCKS USEDEXTENTS USEDBLOCKS FREEBLOCKS CHECKBLOCKS  MINBLOCKS
    ------------------------------ ---------- ----------- ---------- ---------- ----------- ----------
    SYSAUX                    67840     5128       63576       4136      67712        128
    UNDOTBS1                11520       36        2208       9184      11392        128
    USERS                      960       89         712    168        880     80
    SYSTEM                    90880     3042       89648       1104      90752        128
    EXAMPLE                 12800      884        9952       2720      12672        128
    UNOTBS_NEW                12800      162        4536       8136      12672        128
     
    6 rows selected.
     
    SQL>
    2.示例演示通过rowid得到数据块的相关信息(所在对象,文件,数据块)。
    SQL> create table tt as select * from dba_objects where object_id < 10;
     
    Table created.

    SQL> select rowid,object_id,object_name from tt;
     
    ROWID            OBJECT_ID OBJECT_NAME
    ------------------ ---------- --------------------------------------------------------------------------------------------------------------------------------
    AAASVGAABAAAVUZAAA        2 C_OBJ#
    AAASVGAABAAAVUZAAB        3 I_OBJ#
    AAASVGAABAAAVUZAAC        4 TAB$
    AAASVGAABAAAVUZAAD        5 CLU$
    AAASVGAABAAAVUZAAE        6 C_TS#
    AAASVGAABAAAVUZAAF        7 I_TS#
    AAASVGAABAAAVUZAAG        8 C_FILE#_BLOCK#
    AAASVGAABAAAVUZAAH        9 I_FILE#_BLOCK#
     
    8 rows selected.

    select
    rowid,dbms_rowid.rowid_object(rowid) object_id,
    dbms_rowid.rowid_relative_fno(rowid) file_id,
    dbms_rowid.rowid_block_number(rowid) block_id,
    dbms_rowid.rowid_row_number(rowid) row_id
      6  from tt;
     
    ROWID            OBJECT_ID     FILE_ID   BLOCK_ID    ROW_ID
    ------------------ ---------- ---------- ---------- ----------
    AAASVGAABAAAVUZAAA    75078           1      87321         0
    AAASVGAABAAAVUZAAB    75078           1      87321         1
    AAASVGAABAAAVUZAAC    75078           1      87321         2
    AAASVGAABAAAVUZAAD    75078           1      87321         3
    AAASVGAABAAAVUZAAE    75078           1      87321         4
    AAASVGAABAAAVUZAAF    75078           1      87321         5
    AAASVGAABAAAVUZAAG    75078           1      87321         6
    AAASVGAABAAAVUZAAH    75078           1      87321         7
     
    8 rows selected.
     
    SQL> select object_name from dba_objects where object_id=75078;
     
    OBJECT_NAME
    --------------------------------------------------------------------------------------------------------------------------------
    TT
     
    SQL>
    3.示例说明consistent read,current read,logical read,phicical read的概念及关系。
    SQL> set autotrace traceonly stat
    SQL> alter system flush buffer_cache;
    System altered.
     
    SQL> alter system flush buffer_cache;
     
    System altered.
     
    SQL> select * from dba_objects;
     
    72552 rows selected.
     
     
    Statistics
    ----------------------------------------------------------
         15  recursive calls
          0  db block gets
           7719  consistent gets
           1469  physical reads
          0  redo size
        3472080  bytes sent via SQL*Net to client
          53616  bytes received via SQL*Net from client
           4838  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          72552  rows processed
     
    SQL> select * from dba_objects;
     
    72552 rows selected.
     
     
    Statistics
    ----------------------------------------------------------
          0  recursive calls
          0  db block gets
           7715  consistent gets
          0  physical reads
          0  redo size
        3472080  bytes sent via SQL*Net to client
          53616  bytes received via SQL*Net from client
           4838  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          72552  rows processed
     
    SQL>
    逻辑读:current read又叫做db block gets,逻辑读=db block gets+consistent read
    物理读:从磁盘中读到内存中
    4.设计一个例子,演示PCTUSED和PCTFREE对数据操作的影响。
    SQL> drop table tt purge;
     
    Table dropped.
     
    SQL> create table tt as select * from sys_objects where rownum < 500;
     
    Table created.
     
    SQL>  select pct_free,pct_used,blocks,num_rows,avg_row_len from dba_tables where table_name='TT';
     
      PCT_FREE   PCT_USED      BLOCKS   NUM_ROWS AVG_ROW_LEN
    ---------- ---------- ---------- ---------- -----------
        10       40
     
    SQL>  analyze table TT compute statistics;
     
    Table analyzed.
     
    SQL>  select pct_free,pct_used,blocks,num_rows,avg_row_len from dba_tables where table_name='TT';
     
      PCT_FREE   PCT_USED      BLOCKS   NUM_ROWS AVG_ROW_LEN
    ---------- ---------- ---------- ---------- -----------
        10       40           3    499         28
     
     
    SQL>  select pct_free,pct_used,blocks,num_rows,avg_row_len from dba_tables where table_name='TT';
     
      PCT_FREE   PCT_USED      BLOCKS   NUM_ROWS AVG_ROW_LEN
    ---------- ---------- ---------- ---------- -----------
        10       40           3    499         28
     
    SQL> INSERT INTO TT select * from TT where rownum<21;
     
    20 rows created.
     
    SQL> commit;
     
    Commit complete.
     
    SQL>  analyze table TT compute statistics;
     
    Table analyzed.

    SQL>  select pct_free,pct_used,blocks,num_rows,avg_row_len from dba_tables where table_name='TT';
     
      PCT_FREE   PCT_USED      BLOCKS   NUM_ROWS AVG_ROW_LEN
    ---------- ---------- ---------- ---------- -----------
        10       40           4    520         28
     
    SQL> CREATE TABLESPACE USER03 DATAFILE 'USER03' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED SEGMENT SPACE MANAGEMENT manual;
    Tablespace created.
     
    SQL> create table t03 tablespace USER03 as  select * from dba_objects where rownum<500;
     
    Table created.
     
    SQL>  select pct_free,pct_used,blocks,num_rows,avg_row_len from dba_tables where table_name='T03';
     
      PCT_FREE   PCT_USED      BLOCKS   NUM_ROWS AVG_ROW_LEN
    ---------- ---------- ---------- ---------- -----------
        10       40
     
    SQL>  analyze table T03 compute statistics;
     
    Table analyzed.
     
    SQL>  select pct_free,pct_used,blocks,num_rows,avg_row_len from dba_tables where table_name='T03';
     
      PCT_FREE   PCT_USED      BLOCKS   NUM_ROWS AVG_ROW_LEN
    ---------- ---------- ---------- ---------- -----------
        10       40           7    499         87
     
    SQL> INSERT INTO T03 select * from T03 where rownum<81;
     
    80 rows created.

    SQL> commit;
     
    Commit complete.

    SQL>  analyze table T03 compute statistics;
     
    Table analyzed.
     
    SQL>  select pct_free,pct_used,blocks,num_rows,avg_row_len from dba_tables where table_name='T03';
     
      PCT_FREE   PCT_USED      BLOCKS   NUM_ROWS AVG_ROW_LEN
    ---------- ---------- ---------- ---------- -----------
        10       40           7    369         89
     
    5.设计一个例子,演示数据块整理(合并)的效果。
     
    SQL> create table t as select object_id,object_name from dba_objects;
    Table created.
     
    SQL> insert into  t select object_id,object_name from dba_objects;
    72552 rows created.
     
    SQL> insert into  t select object_id,object_name from dba_objects;
    72552 rows created.
     
    SQL> insert into  t select object_id,object_name from dba_objects;
    72552 rows created.
     
    SQL> insert into  t select object_id,object_name from dba_objects;
    72552 rows created.
     
    SQL> insert into  t select object_id,object_name from dba_objects;
    72552 rows created.

    SQL> commit;
     
    Commit complete.

    SQL> ANALYZE TABLE T COMPUTE STATISTICS;
     
    Table analyzed.

    SQL> select blocks from user_tables where table_name='T';
     
        BLOCKS
    ----------
          2062
     
    SQL> alter table t enable row movement;
     
    Table altered.
     
    SQL> alter table t shrink space;
     
     
    Table altered.
     
     
    SQL> ANALYZE TABLE T COMPUTE STATISTICS;
     
    Table analyzed.
     
    SQL> select blocks from user_tables where table_name='T';
     
    BLOCKS
    ----------
    1950
    我坚信初学者更习资料是自己亲手记录。
    我坚信最好的加明白初学者学习的困难在哪里。
    我坚信最好的学学习方法是自己动手。
    我坚信最好的检验方式就是能把自己所学到的东西转手教给别人。
                                     -----作者: 高鹏
  • 相关阅读:
    how to pass a Javabean to server In Model2 architecture.
    What is the Web Appliation Archive, abbreviation is "WAR"
    Understaning Javascript OO
    Genetic Fraud
    poj 3211 Washing Clothes
    poj 2385 Apple Catching
    Magic Star
    关于memset的用法几点
    c++ 函数
    zoj 2972 Hurdles of 110m
  • 原文地址:https://www.cnblogs.com/jiaoweixue/p/3136749.html
Copyright © 2011-2022 走看看