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
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';
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
------------------------------ ------------------------------ -------- ---------- ---------- -
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';
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
------------------------------ ------------------------------ ---------- ------------
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';
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
------------------------------ ------------------------------ ---
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';
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
------------------------------ ------------------------------ --------
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';
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
------------------------------ ------------------------------ -------- ------------ - --- ---
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;
参考: 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/