oracle数据字典详解.docx
- 文档编号:11947253
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:29
- 大小:22.25KB
oracle数据字典详解.docx
《oracle数据字典详解.docx》由会员分享,可在线阅读,更多相关《oracle数据字典详解.docx(29页珍藏版)》请在冰点文库上搜索。
oracle数据字典详解
学习笔记:
oracle数据字典详解
---
本文为TTT学习笔记,首先介绍数据字典及查看方法,然后分类总结各类数据字典的表和视图。
然后列出一些附例。
数据字典系统表,保存在system表空间中。
由表和视图组成,由服务器在安装数据库时自动创建,用户不可以直接修改数据库字典,在执行DDL语句时,oracle会自动修改。
记录一些表和视图(只读的),新建的表不要和这空间建在一起(9i以前的版本新用户建的表默认表空间为system,注意修改)
--查询数据字典:
select*fromdictionary
--数据字典导出方法:
conn/assysdba
spoolon
spoolc:
\dic.txt
select*fromdictionary
spooloff
主要四部分:
1,内部RDBMS表:
x$……
2,数据字典表:
……$
3,动态性能视图:
gv$……,v$……
4,数据字典视图:
user_……,all_……,dba_……
数据库启动时,动态创建x$,在X$基础上创建GV$,在GV$基础上创建V$X$表-->GV$(视图)--->V$(视图)
+++
一,内部RDBMS表 x$……,例如:
x$kvit,x$bh,x$ksmsp,x$ksppi和x$ksppcv
核心部分,用于跟踪内部数据库信息,维持DB的正常运行。
是加密命名的,不允许sysdba以外的用户直接访问,显示授权不被允许。
最好不要修改.
x$kvit=KernelLayerPerformanceLayerVInformationtablesTransitoryInstanceparameter
数据库启动时,动态创建x$……
+++
二,数据字典表 ……$,如tab$,obj$,ts$……
--用来存储表、索引、约束以及其他数据库结构的信息。
--创建数据库时通过脚本sql.bsq来创建,脚本:
$oracle_home/rdbms/admin/sql.bsq
+++
三,动态性能视图 gv$……,v$……,如V$parameter
--记录了DB运行时信息和统计数据,大部分动态性能视图被实时更新以反映DB当前状态。
--数据库创建时建立的。
--只有sysdba可以直接访问。
--查看表v$fixed_view_definition(***),可以查看GV$和V$视图的创建语句。
(oracle提供一些特殊视图,用来记录其他视图的创建方式,v$fixed_view_definition就是其中之一)
--selectview_definitionfromv$fixed_view_definitionwhereview_name='V$FIXED_TABLE';
--gv$……=GlobalV$,在X$……基础上创建,是为了满足OPS环境(多个实例)的需要面产生的,可以返回多个实例的信息。
V$……,在GV$……基础上创建,只返回当前实例的信息。
定义语句都带有:
whereinst_id=USERENV('Instance')
--GV$和V$之后,oracle建立了GV_$和V_$视图,又为这些视图建立了公用同义词。
由脚本catalog.sql实现的,脚本:
$oracle_home/rdbms/admin/catalog.sql
createorreplaceviewv_$processasselect*fromv$process;
createorreplacepublicsynonymv$processforv_$process;
createorreplaceviewgv_$processasselect*fromgv$process;
createorreplacepublicsynonymgv$processforgv_$process;
-->可以看出:
V$(视图)-->V_$(视图)-->V$(公用同义词)
GV$(视图)-->GV_$(视图)-->GV$(公用同义词)
这样做的目的:
通过V_$和GV_$,oracle把V$视图和GV视图和普通用户隔离开来。
(oracle允许V_$视图权限可以授权给其他用户,但不允许任何对于V$视图的直接授权。
)
所以,在非Sys用户下,我们访问的都是同义词,而不是V$视图或GV视图。
--oracle访问数据顺序:
view-->同义词。
+++
四,数据库字典视图
--是在X$表和数据字典表之上建立的视图。
--创建数据库时由脚本catalog.sql创建。
脚本:
$oracle_home/rdbms/admin/catalog.sql
--按前缀不同,作用范围的分为三类:
1、以user开头的数据字典:
包含当前用户所拥有的相关对象信息。
--能够查到对象的所有者是当前用户的所有对象
selecttable_namefromuser_tables; (scott)5
2、以all开头的数据字典:
包含当前用户有权限访问的所有对象的信息。
--能够查到所有当前用户有权限访问的对象
selecttable_namefromall_tables; (scott)96
3、以dba开头的数据字典:
包含数据库所有相关对象的信息。
--只能是有dba权限的用户查询,能查到数据库中所有对象
selecttable_namefromdba_tables(syssystem)
+++
附:
比较user,all,dba数据字典视图
各数据字典表数量比较
表Dictionary与V$fixed_table比较
通过V$parameter视图来追踪一下数据库的架构
oracle如何通过同义词定位对象(10046事件)
+++
比较user,all,dba数据字典视图
---
可以查看脚本catalog.sql中的定义:
+++
--USER_TABLES
createorreplaceviewUSER_TABLES
(TABLE_NAME,TABLESPACE_NAME,CLUSTER_NAME,IOT_NAME,STATUS,
PCT_FREE,PCT_USED,
INI_TRANS,MAX_TRANS,
INITIAL_EXTENT,NEXT_EXTENT,
MIN_EXTENTS,MAX_EXTENTS,PCT_INCREASE,
FREELISTS,FREELIST_GROUPS,LOGGING,
BACKED_UP,NUM_ROWS,BLOCKS,EMPTY_BLOCKS,
AVG_SPACE,CHAIN_CNT,AVG_ROW_LEN,
AVG_SPACE_FREELIST_BLOCKS,NUM_FREELIST_BLOCKS,
DEGREE,INSTANCES,CACHE,TABLE_LOCK,
SAMPLE_SIZE,LAST_ANALYZED,PARTITIONED,
IOT_TYPE,TEMPORARY,SECONDARY,NESTED,
BUFFER_POOL,ROW_MOVEMENT,
GLOBAL_STATS,USER_STATS,DURATION,SKIP_CORRUPT,MONITORING,
CLUSTER_OWNER,DEPENDENCIES,COMPRESSION,DROPPED)
as
selecto.name,decode(bitand(t.property,2151678048),0,ts.name,null),
decode(bitand(t.property,1024),0,null,co.name),
decode((bitand(t.property,512)+bitand(t.flags,536870912)),
0,null,co.name),
decode(bitand(t.trigflag,1073741824),1073741824,'UNUSABLE','VALID'),
decode(bitand(t.property,32+64),0,mod(t.pctfree$,100),64,0,null),
decode(bitand(ts.flags,32),32,to_number(NULL),
decode(bitand(t.property,32+64),0,t.pctused$,64,0,null)),
decode(bitand(t.property,32),0,t.initrans,null),
decode(bitand(t.property,32),0,t.maxtrans,null),
s.iniexts*ts.blocksize,
decode(bitand(ts.flags,3),1,to_number(NULL),
s.extsize*ts.blocksize),
s.minexts,s.maxexts,
decode(bitand(ts.flags,3),1,to_number(NULL),
s.extpct),
decode(bitand(ts.flags,32),32,to_number(NULL),
decode(bitand(o.flags,2),2,1,decode(s.lists,0,1,s.lists))),
decode(bitand(ts.flags,32),32,to_number(NULL),
decode(bitand(o.flags,2),2,1,decode(s.groups,0,1,s.groups))),
decode(bitand(t.property,32+64),0,
decode(bitand(t.flags,32),0,'YES','NO'),null),
decode(bitand(t.flags,1),0,'Y',1,'N','?
'),
t.rowcnt,
decode(bitand(t.property,64),0,t.blkcnt,null),
decode(bitand(t.property,64),0,t.empcnt,null),
decode(bitand(t.property,64),0,t.avgspc,null),
t.chncnt,t.avgrln,t.avgspc_flb,
decode(bitand(t.property,64),0,t.flbcnt,null),
lpad(decode(t.degree,32767,'DEFAULT',nvl(t.degree,1)),10),
lpad(decode(t.instances,32767,'DEFAULT',nvl(t.instances,1)),10),
lpad(decode(bitand(t.flags,8),8,'Y','N'),5),
decode(bitand(t.flags,6),0,'ENABLED','DISABLED'),
t.samplesize,t.analyzetime,
decode(bitand(t.property,32),32,'YES','NO'),
decode(bitand(t.property,64),64,'IOT',
decode(bitand(t.property,512),512,'IOT_OVERFLOW',
decode(bitand(t.flags,536870912),536870912,'IOT_MAPPING',null))),
decode(bitand(o.flags,2),0,'N',2,'Y','N'),
decode(bitand(o.flags,16),0,'N',16,'Y','N'),
decode(bitand(t.property,8192),8192,'YES',
decode(bitand(t.property,1),0,'NO','YES')),
decode(bitand(o.flags,2),2,'DEFAULT',
decode(s.cachehint,0,'DEFAULT',1,'KEEP',2,'RECYCLE',NULL)),
decode(bitand(t.flags,131072),131072,'ENABLED','DISABLED'),
decode(bitand(t.flags,512),0,'NO','YES'),
decode(bitand(t.flags,256),0,'NO','YES'),
decode(bitand(o.flags,2),0,NULL,
decode(bitand(t.property,8388608),8388608,
'SYS$SESSION','SYS$TRANSACTION')),
decode(bitand(t.flags,1024),1024,'ENABLED','DISABLED'),
decode(bitand(o.flags,2),2,'NO',
decode(bitand(t.property,2147483648),2147483648,'NO',
decode(ksppcv.ksppstvl,'TRUE','YES','NO'))),
decode(bitand(t.property,1024),0,null,cu.name),
decode(bitand(t.flags,8388608),8388608,'ENABLED','DISABLED'),
decode(bitand(t.property,32),32,null,
decode(bitand(s.spare1,2048),2048,'ENABLED','DISABLED')),
decode(bitand(o.flags,128),128,'YES','NO')
fromsys.ts$ts,sys.seg$s,sys.obj$co,sys.tab$t,sys.obj$o,
sys.obj$cx,sys.user$cu,x$ksppcvksppcv,x$ksppiksppi
whereo.owner#=userenv('SCHEMAID')
ando.obj#=t.obj#
andbitand(t.property,1)=0
andbitand(o.flags,128)=0
andt.bobj#=co.obj#(+)
andt.ts#=ts.ts#
andt.file#=s.file#(+)
andt.block#=s.block#(+)
andt.ts#=s.ts#(+)
andt.dataobj#=cx.obj#(+)
andcx.owner#=cu.user#(+)
andksppi.indx=ksppcv.indx
andksppi.ksppinm='_dml_monitoring_enabled'
--可以看到限制条件:
whereo.owner#=userenv('SCHEMAID')
+++
--USER_ALL_TABLES
createorreplaceviewUSER_ALL_TABLES
(TABLE_NAME,TABLESPACE_NAME,CLUSTER_NAME,IOT_NAME,STATUS,
PCT_FREE,PCT_USED,
INI_TRANS,MAX_TRANS,
INITIAL_EXTENT,NEXT_EXTENT,
MIN_EXTENTS,MAX_EXTENTS,PCT_INCREASE,
FREELISTS,FREELIST_GROUPS,LOGGING,
BACKED_UP,NUM_ROWS,BLOCKS,EMPTY_BLOCKS,
AVG_SPACE,CHAIN_CNT,AVG_ROW_LEN,
AVG_SPACE_FREELIST_BLOCKS,NUM_FREELIST_BLOCKS,
DEGREE,INSTANCES,CACHE,TABLE_LOCK,
SAMPLE_SIZE,LAST_ANALYZED,PARTITIONED,
IOT_TYPE,OBJECT_ID_TYPE,
TABLE_TYPE_OWNER,TABLE_TYPE,TEMPORARY,SECONDARY,NESTED,
BUFFER_POOL,ROW_MOVEMENT,
GLOBAL_STATS,USER_STATS,DURATION,SKIP_CORRUPT,MONITORING,
CLUSTER_OWNER,DEPENDENCIES,COMPRESSION,DROPPED)
as
selectTABLE_NAME,TABLESPACE_NAME,CLUSTER_NAME,IOT_NAME,STATUS,
PCT_FREE,PCT_USED,
INI_TRANS,MAX_TRANS,
INITIAL_EXTENT,NEXT_EXTENT,
MIN_EXTENTS,MAX_EXTENTS,PCT_INCREASE,
FREELISTS,FREELIST_GROUPS,LOGGING,
BACKED_UP,NUM_ROWS,BLOCKS,EMPTY_BLOCKS,
AVG_SPACE,CHAIN_CNT,AVG_ROW_LEN,
AVG_SPACE_FREELIST_BLOCKS,NUM_FREELIST_BLOCKS,
DEGREE,INSTANCES,CACHE,TABLE_LOCK,
SAMPLE_SIZE,LAST_ANALYZED,PARTITIONED,
IOT_TYPE,
NULL,NULL,NULL,TEMPORARY,SECONDARY,NESTED,
BUFFER_POOL,ROW_MOVEMENT,
GLOBAL_STATS,USER_STATS,DURATION,SKIP_CORRUPT,MONITORING,
CLUSTER_OWNER,DEPENDENCIES,COMPRESSION,DROPPED
fromuser_tables
unionall
selectTABLE_NAME,TABLESPACE_NAME,CLUSTER_NAME,IOT_NAME,STATUS,
PCT_FREE,PCT_USED,
INI_TRANS,MAX_TRANS,
INITIAL_EXTENT,NEXT_EXTENT,
MIN_EXTENTS,MAX_EXTENTS,PCT_INCREASE,
FREELISTS,FREELIST_GROUPS,LOGGING,
BACKED_UP,NUM_ROWS,BLOCKS,EMPTY_BLOCKS,
AVG_SPACE,CHAIN_CNT,AVG_ROW_LEN,
AVG_SPACE_FREELIST_BLOCKS,NUM_FREELIST_BLOCKS,
DEGREE,INSTANCES,CACHE,TABLE_LOCK,
SAMPLE_SIZE,LAST_ANALYZED,PARTITIONED,
IOT_TYPE,OBJECT_ID_TYPE,
TABLE_TYPE_OWNER,TABLE_TYPE,TEMPORARY,SECONDARY,NESTED,
BUFFER_POOL,ROW_MOVEMENT,
GLOBAL_STATS,USER_STATS,DURATION,SKIP_CORRUPT,MONITORING,
CLUSTER_OWNER,DEPENDENCIES,COMPRESSION,DROPPED
fromuser_object_tables
--扩展了关于用户有权限访问的对象信息,所以user_tables是all_tables的子集。
+++
--DBA_tables
createorreplaceviewDBA_TABLES
(OWNER,TABLE_NAME,TABLESPACE_NAME,CLUSTER_NAME,IOT_NAME,STATUS,
PCT_FREE,PCT_USED,
INI_TRANS,MAX_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 数据 字典 详解
![提示](https://static.bingdoc.com/images/bang_tan.gif)