资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第7课 数据字典和动态性 能视图肖永康 xiaoykbnu.edu.cn1目录n数据字典n常用数据字典n动态性能视图n常用动态性能视图2数据字典n数据字典n记载了数据库的系统信息,它是只读表和视图的集合。n数据字典的所有者为sys用户,并且其数据被存储在system表 空间中。n因为Oracle专门使用system表空间存储数据字典信息,所以建 议不要在system表空间上建立表、索引和簇等对象。n用户只能在数据字典上执行查询操作(select语句), 而其维护和修改是由系统自动完成的。3数据字典的维护和修改n数据字典的其维护和修改由系统自动完成n当执行create操作(如create table)时,oracle会在数据字典上 隐含的执行insert操作n当执行alter操作(如alter table)时,oracle会在数据字典上隐 含的执行update操作n当执行drop操作(如drop table)时,oracle会在数据字典上隐 含的执行delete操作4数据字典的分类n数据字典包括:数据字典基表和数据字典视图两部分。n基表:存储数据的基本信息,普通用户不能直接访问。n视图分为三类:USER_XXX,ALL_XXX,DBA_XXX。nDBA_XXX:所有的数据库对象nALL_XXX:当前用户可访问的对象nUSER_XXX:当前用户所拥有的对象5数据字典的内容(1)n对象定义:包dbms_metadatanSQL set long 4000 SQL select dbms_metadata.get_ddl(TABLE,EMP) ddl from dual;n对象占用总空间: user_segments nSQL select bytes from user_segments where segment_name=EMP;n查询段的剩余空间和已用空间n先使用analyze table命令分析表,再查寻数据字典user_tables SQL analyze table emp compute statistics; SQL select empty_blocks, blocks from user_tables where table_name=EMP;6数据字典的内容(2)n列信息:user_tab_columnsnSQL select column_name, data_type, data_default from user_tab_columns where table_name=DEPT;n约束信息: nuser_constraints(约束)nuser_cons_columns(约束列) SQL select a.constraint_name, a.constraint_type, b.column_name, b.position from user_constraints a, user_cons_columns b where a.constraint_name=b.constraint_name and a.table_name=EMP;7数据字典的内容(3)n用户名、权限和角色nDBA_USERS:所有用户的详细信息nDBA_SYS_PRIVS:用户和角色的系统权限nDBA_TAB_PRIVS:用户和角色的对象权限nDBA_COL_PRIVS:用户和角色的列权限nDBA_ROLE_PRIVS:用户和角色的其他角色 例子:查看scott用户的所有角色 SQL conn / as sysdba SQL select granted_role from dba_role_privs where grantee=SCOTT;8常用数据字典(1)ndictn显示当前用户可访问的所有数据字典视图,并给出了其作用n例子:查询当前用户可以访问并与权限有关的数据字典 SQL select table_name from dict where comments like %grant%;ndict_columnsn显示数据字典视图每个列的作用 SQL select column_name, comments from dict_columns;ndualn取得函数的返回值 SQL select user from dual;nglobal_namen显示当前数据库的全名9常用数据字典(3)nindn当前用户所拥有的索引和索引统计信息nobjn当前用户所拥有的所有对象nseqn当前用户所有拥有的所有序列 SQL select sequence_name, increment_by from seq;nsynn当前所有拥有的所有同义词和同义词所对应的数据对象名ntabn当前用户所拥有的所有表、视图和序列10动态性能视图n用于记录当前实例的活动信息n启动实例时,Oracle会自动建立动态性能视图,而停 止实例时,Oracle会自动删除动态性能视图n数据字典是从数据文件中获得,而动态性能视图是从 SGA和控制文件中获得n所有的动态性能视图都是以V_$开始(V$为其同义词 ) n动态视图由sys所拥有,且大部分动态视图只能由特权 用户和DBA用户查询11常用动态性能视图(1)nv$fixed_table:列出所有可用的动态性能视图nSQL select name from v$fixed_table where name like V$%;nv$instance:获得当前实例的详细信息nv$sga:显示SGA的主要组成部分nv$sgainfo:显示SGA的更详细的信息nV$parameter:初始化参数nSQLselect name, value, description from v$parameter;nV$version:Oracle版本nSQLselect * from v$version;nV$option:已安装的oracle选项nSQLselect * from v$option;12常用动态性能视图(2)nV$SESSION:会话的详细信息nSQLselect sid, serial#, username from v$session where username is not null;n注意:serial#用于标识会话的序号nV$process:所有进程信息(包括后台进程和服务器进 程)nSQL select a.terminal, a.spid, a.pga_alloc_mem from v$process a, v$session b where a.addr=b.paddr and b.username=SCOTT;nV$bgprocess:后台进程的详细信息nSQLselect name, description from v$bgprocess where paddr select * from v$tablespace;nv$tempsapce:临时文件nV$controlfile:控制文件nSQLselect name from v$controlfile;nV$database:当前数据库的信息(包括数据库名、日志 操作模式以及建立时间等)nSQLselect name, log_mode, created from v$database;nV$datafile:数据文件nSQLselect file#, name, bytes from v$datafile;n其中:file#用于标识数据文件的编号nV$logfile:重做日志成员的信息nSQLselect group#, member from v$logfile; 14常用动态性能视图(3)nV$log:重做日志组的信息nSQLselect group#, thread#, sequence#, bytes, members, status from v$log;n注意:group#用于标识日志组的组号,thread#用于标识日志 组所属的重做线程的编号,sequence#用于标识日志组中的当 前日志序列号,members用于标识日志组的成员个数,status 用于标识日志组的状态nv$lock:锁信息nv$locked_object:显示被加锁的数据库对象信息nv$rollname:online状态的undo段nv$rollstat:undo段的统计信息15
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号