Oracle數據字典

1:  数据字典记录了数据库的系统信息,是读表和視圖的集合,数据字典的所有者为sys用户,并且存放在system表空间中。

        数据字典基表存放基本信息,普通用户不能访问,只能访问数据字典視圖取得系统信息。

数据字典包含三种类型: 

        USER_XXX:   當前用戶下所有数据库对象 

        ALL_XXX:      当前用户可以看到的所有对象 

        DBA_XXX:     具備DBA權限可以看到的對象 

2: 数据字典内容 

    A:对象定义 

        当执行create命令创建对象时,Oracle会将对象存放到数据字典中,可以使用DBMS_METADATA可以获取对象定义语句,: 

            SQL>SET LONG 4000 

            SQL>SELECT dbms_metadata.get_ddl('TABLE','EMP') ddl FROM DUAL; 

    B:对象占用的空间 

        建立表,索引和族时,Oralce会给表,索引和族分配相应的空间,以存放这些对象的数据,通过数据字典,可以取得所占用的空间 

        查询表占用的空间,可以查看其同名段的大小,如下: 

            SQL> SELECT bytes FROM user_segments WHERE segment_name='EMP'

        如果要查看剩余空间和已用空间时,要做一下步骤: 

            SQL> analyze table emp compute statistics; 

            SQL> select empty_blocks,blocks from user_tables where table_name='EMP'

    C: 列信息 

            SQL> select from user_tab_columns where table_name="DEPT"

    D: 用户名,权限和角色 

            DBA_USERS: 所有数据库用户的详细信息 

            DBA_SYS_PRIVS: 用户或角色所具有的系统权限 

            DBA_TAB_PRIV: 显示用户或角色所具有的对象权限 

            DBA_COL_PRIVS: 用户或角色所具有的列权限 

            DBA_ROLE_PRIVS: 显示用户或角色具有的其他的角色。 

3:常用的数据字典: 

     1 DICT: 显示当前用户可以访问的所有的数据字典试图 

     2 DICT_COLUMNS: 用户显示数据字典视图每个列的作用, 

            SQL> SELECT column_name,comments FROM dict_columns WHERE table_name='DICT'

     3 DUAL: 用于取得函数的返回值 

            SQL> SELECT user FROM dual; 

     4 GLOBAL_NAME: 用于显示当前数据库的全名 

            SQL> SELECT * FROM GLOBAL_NAME 

     5 IND:用于显示当前用于所拥有的索引 

     6 OBJ: 用于显示当前用户所拥有的所有对象 

     7 SEG:用于显示当前用户所拥有的序列 

     8 SYN:用于显示当前用户所拥有的同义词和同义词对应的数据库对象名 

     9 TAB:用于显示当前用户所拥有的表,视图和序列   

4:动态性能试图记录当前例程的活动信息,启动时从SGA和控制文件中取得的,例程停止时,删除这些表 

     数据字典时从数据文件中获取的 

      

5:常用的动态性能视图表: 

        1:V$FIXED_TABLE - 列出所有可用的动态性能视图和动态性能表 

        2:V$INSTANCE - 取得当前例程的详细信息 

        3:V$SGA - 用于显示SGA主要组成部分 

        4:V$SGAINFO - 取得SGA更详细的信息 

        5:V$PARAMETER - 取得初始化参数的详细信息 

        6:V$VERSION - 取得ORACLE版本的详细信息 

        7:V$OPTION - 该动态性能视图用于显示已经安装的Oralce选项 

        8:V$SESSION - 用于显示会话的详细信息 

        9:V$PROCESS - 显示Oracel所有进程的信息(包括后台进程和服务器进程) 

        10 V$BGPROCESS - 用于显示后台进程的详细信息 

        11 V$DATABASE - 用于显示当前数据的详细信息 

        12 V$CONTROLFILE - 显示所有控制文件的信息 

        13 V$DATAFILE - 数据文件的详细信息 

        14 V$DBFILE - 显示数据文件编号及名称 

        15 V$LOGFILE - 用于显示重做日志成员的信息 

        16 V$LOG - 显示日志组的详细信息 

        17 V$THEAD - 取得重做线程的详细信息 

        18 V$LOCK - 用于显示锁的信息,通过与V$SESSION进行连接查询,可以显示占有锁的会话,以及等待锁的会话 

                SQL>select a.username,a.mechine,b.lmode,b.request from v$session a,v$lock b  

                        where a.sid=b.sid and a.type='USER'

        19 V$LOCKED_OBJECT 显示被加锁的数据库对象,通过与DBA_OBJECT进行连接查询,可以显示具体的对象名及执行加锁操作的 

             ORACLE用户名 

                SQL> select a.oracle_username,b.owner||'.'||b.object_name object 

                        from V$LOCKED_OBJECT a,DBA_OBJECT b 

                        where a.object_id = b.object_id 

        20 V$TABLESPACE - 显示表空间的信息 

        21 V$TEMPFILE - 显示数据库所包含的临时文件 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值