dba_tables动态性能视图

SQL> desc dba_tables                                                  
 Name                      Null?    Type                              
 ------------------------- -------- ---------------                   
 OWNER                     NOT NULL VARCHAR2(30)         表所属用户             
 TABLE_NAME                NOT NULL VARCHAR2(30)         表名           
 TABLESPACE_NAME                    VARCHAR2(30)         表空间名             
 CLUSTER_NAME                       VARCHAR2(30)         Oracle提供了多种数据表存储结构。我们最常见的就是三种,分别为堆表(Heap Table)、索引组织表(Index Organization Table,简称为IOT)和聚簇表(Cluster Table)。             
 IOT_NAME                           VARCHAR2(30)         Oracle提供了多种数据表存储结构。我们最常见的就是三种,分别为堆表(Heap Table)、索引组织表(Index Organization Table,简称为IOT)和聚簇表(Cluster Table)。                  
 STATUS                             VARCHAR2(8)          表的状态 (UNUSABLE) or (VALID)            
 PCT_FREE                           NUMBER               数据块中剩余百分比的最小值,分区表为空              
 PCT_USED                           NUMBER               数据块中使用百分比的最小值,分区表为空             
 INI_TRANS                          NUMBER               事务的初始化值,分区表为空             
 MAX_TRANS                          NUMBER               事务的最大值,分区表为空             
 INITIAL_EXTENT                     NUMBER               初始化extent大小(以字节为单位),分区表为空            
 NEXT_EXTENT                        NUMBER               下一个extent分配大小,分区表为空            
 MIN_EXTENTS                        NUMBER               段中分配的区中的最小值,分区表为空            
 MAX_EXTENTS                        NUMBER               段中分配的区中的最大值,分区表为空             
 PCT_INCREASE                       NUMBER               在extents中,增长的比例,分区表为空            
 FREELISTS                          NUMBER               分配到段中自由列表的数量,分区表为空             
 FREELIST_GROUPS                    NUMBER               分配到段中的自由列表组数量,分区表为空             
 LOGGING                            VARCHAR2(3)          是否记录日志,分区表为空            
 BACKED_UP                          VARCHAR2(1)          在上一次修改过后是否备份             
 NUM_ROWS                           NUMBER               表示表的行数             
 BLOCKS                             NUMBER               表中使用过的块数量            
 EMPTY_BLOCKS                       NUMBER               表中没有使用过的块            
 AVG_SPACE                          NUMBER               可用的平均空间大小           
 CHAIN_CNT                          NUMBER               表中跨越多个块的行数量            
 AVG_ROW_LEN                        NUMBER               在表中的行的平均长度(以字节为单位)            
 AVG_SPACE_FREELIST_BLOCKS          NUMBER               在freelist上所有块的平均可用空间             
 NUM_FREELIST_BLOCKS                NUMBER               表中可用块的数量             
 DEGREE                             VARCHAR2(40)         每个实例有多少线程可以同时扫描表             
 INSTANCES                          VARCHAR2(40)         多少实例可以同时扫描表            
 CACHE                              VARCHAR2(20)         表是否已经在缓冲区 (Y) or  (N)            
 TABLE_LOCK                         VARCHAR2(8)          是否锁表 (ENABLED) or (DISABLED)             
 SAMPLE_SIZE                        NUMBER               分析这个表所使用的样本大小            
 LAST_ANALYZED                      DATE                 最近一次分析的时间            
 PARTITIONED                        VARCHAR2(3)          是否是分区表             
 IOT_TYPE                           VARCHAR2(12)         是否是索引组织表            
 TEMPORARY                          VARCHAR2(1)          是否是临时表            
 SECONDARY                          VARCHAR2(1)          是否是通过ODCIIndexCreate方法创建的辅助对象             
 NESTED                             VARCHAR2(3)          是否是nested 表 (YES) or (NO)            
 BUFFER_POOL                        VARCHAR2(7)          表对象的默认buffer,分区表显示为NULL(DEFAULT、KEEP、RECYCLE)
 FLASH_CACHE                        VARCHAR2(7)          Database Smart Flash Cache hint to be used for table blocks:DEFAULT、KEEP、NONE:Solaris and Oracle Linux functionality only.
 CELL_FLASH_CACHE                   VARCHAR2(7)          
 ROW_MOVEMENT                       VARCHAR2(8)          行迁移是否开启
 GLOBAL_STATS                       VARCHAR2(3)          作为一个整体(分区表)表的统计的是否准确表示是否被用户统计信息 (YES) or (NO)
 USER_STATS                         VARCHAR2(3)          表示是否被用户统计信息 (YES) or (NO)
 DURATION                           VARCHAR2(15)         临时表的持续时间(SYS$SESSION - Rows are preserved for the duration of the session,SYS$TRANSACTION - Rows are deleted after COMMIT)
 SKIP_CORRUPT                       VARCHAR2(8)          在表和索引扫描时候是否无视标记为corrupt的块. To enable this feature, run theDBMS_REPAIR.SKIP_CORRUPT_BLOCKS procedure.
 MONITORING                         VARCHAR2(3)          表是否设置了MONITORING属性
 CLUSTER_OWNER                      VARCHAR2(30)         簇表的拥有者
 DEPENDENCIES                       VARCHAR2(8)          行级依赖跟踪是否开启(ENABLED) or (DISABLED)
 COMPRESSION                        VARCHAR2(8)          表是否压缩
 COMPRESS_FOR                       VARCHAR2(12)         压缩种类:
                                                                 BASIC               
                                                                 OLTP                
                                                                 QUERY LOWFoot       
                                                                 QUERY HIGHFootref 1 
                                                                 ARCHIVE LOWFootref 1
                                                                 ARCHIVE HIGHFootref 1
                                                                 NULL                
 DROPPED                            VARCHAR2(3)          表是否被DROP到了回收站中
 READ_ONLY                          VARCHAR2(3)          表是否只读
 SEGMENT_CREATED                    VARCHAR2(3)          表的段是否创建
 RESULT_CACHE                       VARCHAR2(7)          为表注释:
                                                                 DEFAULT - Table has not been annotated 
                                                                 FORCE                                  
                                                                 MANUAL                                 
1、查询用户拥有那些表以及表的状态和是否对表做了备份。
SQL> select  OWNER,TABLE_NAME,STATUS,PCT_FREE,PCT_USED,BACKED_UP from dba_tables where OWNER='SCOTT';
OWNER                          TABLE_NAME                     STATUS     PCT_FREE   PCT_USED B
------------------------------ ------------------------------ -------- ---------- ---------- -
SCOTT                          DEPT                           VALID            10            N
SCOTT                          EMP                            VALID            10            N
SCOTT                          SALGRADE                       VALID            10            N
SCOTT                          TEST                           VALID            10            N
SCOTT                          TEST101                        VALID            10            N
SCOTT                          TEST02                         VALID            10            N
SCOTT                          SYS_TEMP_FBT                   VALID            10         40 N
SCOTT                          BONUS                          VALID            10            N
2、查询用户表使用过的块和没有被使用过的块。
SQL> select  OWNER,TABLE_NAME,BLOCKS,EMPTY_BLOCKS from dba_tables where OWNER='SCOTT';
OWNER                          TABLE_NAME                         BLOCKS EMPTY_BLOCKS
------------------------------ ------------------------------ ---------- ------------
SCOTT                          DEPT                                    5            0
SCOTT                          EMP                                     5            0
SCOTT                          SALGRADE                                5            0
SCOTT                          TEST                                    5            0
SCOTT                          TEST101                                 4            0
SCOTT                          TEST02                                  0            0
SCOTT                          SYS_TEMP_FBT
SCOTT                          BONUS                                   0            0
3、查询用户表是否是只读状态
SQL> select OWNER,TABLE_NAME,READ_ONLY from dba_tables where OWNER='SCOTT';
OWNER                          TABLE_NAME                     REA
------------------------------ ------------------------------ ---
SCOTT                          DEPT                           NO
SCOTT                          EMP                            NO
SCOTT                          SALGRADE                       NO
SCOTT                          TEST                           NO
SCOTT                          TEST101                        NO
SCOTT                          TEST02                         NO
SCOTT                          SYS_TEMP_FBT                   NO
SCOTT                          BONUS                          NO
8 rows selected.
4、查询表是否开启行移动
SQL> select OWNER,TABLE_NAME,ROW_MOVEMENT from dba_tables where OWNER='SCOTT';
OWNER                          TABLE_NAME                     ROW_MOVE
------------------------------ ------------------------------ --------
SCOTT                          DEPT                           DISABLED
SCOTT                          EMP                            DISABLED
SCOTT                          SALGRADE                       DISABLED
SCOTT                          TEST                           ENABLED
SCOTT                          TEST101                        DISABLED
SCOTT                          TEST02                         DISABLED
SCOTT                          SYS_TEMP_FBT                   DISABLED
SCOTT                          BONUS                          DISABLED
8 rows selected
5、查询表的种类以及表锁是否打开
SQL> select OWNER,TABLE_NAME,TABLE_LOCK,IOT_TYPE,TEMPORARY,NESTED,PARTITIONED from dba_tables where OWNER='SCOTT';
OWNER                          TABLE_NAME                     TABLE_LO IOT_TYPE     T NES PAR
------------------------------ ------------------------------ -------- ------------ - --- ---
SCOTT                          DEPT                           ENABLED               N NO  NO
SCOTT                          EMP                            ENABLED               N NO  NO
SCOTT                          SALGRADE                       ENABLED               N NO  NO
SCOTT                          TEST                           ENABLED               N NO  NO
SCOTT                          TEST101                        ENABLED               N NO  NO
SCOTT                          TEST02                         ENABLED               N NO  NO
SCOTT                          SYS_TEMP_FBT                   ENABLED               Y NO  NO
SCOTT                          BONUS                          ENABLED               N NO  NO
8 rows selected.
6、利用DBMS_METADATA.GET_DDL,获取表的DDL语句
参考: How To Obtain Table DDL Without Using DBMS_METADATA.GET_DDL (文档 ID 1922301.1)
set echo off
set heading off
set feedback off
set verify off
set pagesize 0
set linesize 132
define schema=&1
define CR=chr(10)
define TAB=chr(9)
col x noprint
col y noprint
select table_name y,0 x,'CREATE TABLE ' ||rtrim(table_name) ||'('
from dba_tables
where owner = upper('&schema')
union
select tc.table_name y,column_id x,decode(column_id,1,' ',' ,')||
rtrim(column_name)|| &TAB || &TAB ||
rtrim(data_type) ||
rtrim(decode(data_type,'DATE',null,'LONG',null,
'NUMBER',decode(to_char(data_precision),null,null,'('),
'(')) ||
rtrim(decode(data_type,
'DATE',null,
'CHAR',data_length,
'VARCHAR2',data_length,
'NUMBER',decode(to_char(data_precision),null,null,
to_char(data_precision) || ',' || to_char(data_scale)),
'LONG',null,
'******ERROR')) ||
rtrim(decode(data_type,'DATE',null,'LONG',null,
'NUMBER',decode(to_char(data_precision),null,null,')'),
')')) || &TAB || &TAB ||
rtrim(decode(nullable,'N','NOT NULL',null))
from dba_tab_columns tc,
dba_objects o
where o.owner = tc.owner
and o.object_name = tc.table_name
and o.object_type = 'TABLE'
and o.owner = upper('&schema')
union
select table_name y,999999 x,')' || &CR
||' STORAGE(' || &CR
||' INITIAL ' || initial_extent || &CR
||' NEXT ' || next_extent || &CR
||' MINEXTENTS ' || min_extents || &CR
||' MAXEXTENTS ' || max_extents || &CR
||' PCTINCREASE '|| pct_increase || ')' ||&CR
||' INITRANS ' || ini_trans || &CR
||' MAXTRANS ' || max_trans || &CR
||' PCTFREE ' || pct_free || &CR
||' PCTUSED ' || pct_used || &CR
||' PARALLEL (DEGREE ' || rtrim(DEGREE) || ') ' || &CR
||' TABLESPACE ' || rtrim(tablespace_name) ||&CR
||'/'||&CR||&CR
from dba_tables
where owner = upper('&schema')
order by 1,2;

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

转载于:http://blog.itpub.net/31467250/viewspace-2141096/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值