• 技术文章 >数据库 >Oracle

    oracle数据字典、数据字典视图及动态性能视图(总结分享)

    长期闲置长期闲置2022-07-06 13:58:54转载232
    本篇文章给大家带来了关于Oracle的相关知识,其中主要整理了数据字典、数据字典视图及动态性能视图的相关问题,数据字典记录数据库最基本的信息,包括数据字典基本表和数据字典视图,下面一起来看一下,希望对大家有帮助。

    推荐教程:《Oracle视频教程

    1.数据字典

    1.1 概念

      数据字典记录数据库最基本的信息,包括数据字典基本表和数据字典视图;数据字典基本表由 $ORACLE_HOME\RDBMS\ADMIN\sql.bsq创建

    在这里插入图片描述
    在这里插入图片描述

      数据字典基本表,属于sys用户,存放在system表空间,用户不能手动去修改数据字典基本表;
      为了简化对数据字典基本表的使用,oracle提供了数据字典视图,还为数据字典视图创建了公有同义词,方便用户使用,数据字典视图和同义词的创建通过catalog.sql

    1.2 数据字典视图

    1.2.1 三种类型

      USER_类型的视图表示当前登录用户拥有的信息;
      ALL_类型的视图表示当前登录用户有权限看到的信息;
      DBA_类型的视图表示数据库管理员能够看到的信息

    如:

    (1)USER_类型 (user_tables)

    对应了2个数据库对象,一个是数据字典视图,一个是同义词,而且是先基于数据字典表创建数据字典视图,然后为视图创建了一个同名的同义词

    查询USER_TABLES对应的数据库对象:

    select * from dba_objects d where d.OBJECT_NAME='USER_TABLES';

    在这里插入图片描述
    查询USER_TABLES对应的视图:

     select * from dba_views d where d.view_name='USER_TABLES';

    在这里插入图片描述
    查询USER_TABLES对应视图的创建语句:

    SQL> SET LONG 10000;SQL>  select d.text from dba_views d where d.view_name='USER_TABLES';TEXT--------------------------------------------------------------------------------select o.name,
           decode(bitand(t.property,2151678048), 0, ts.name,
                  decode(t.ts#, 0, null, ts.name)),
           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),
           decode(bitand(t.property, 17179869184), 17179869184,
                         ds.initial_stg * ts.blocksize,
                         s.iniexts * ts.blocksize),
           decode(bitand(t.property, 17179869184), 17179869184,
                  ds.next_stg * ts.blocksize,
                  s.extsize * ts.blocksize),
           decode(bitand(t.property, 17179869184), 17179869184,
                  ds.minext_stg, s.minexts),
           decode(bitand(t.property, 17179869184), 17179869184,
                  ds.maxext_stg, s.maxexts),
           decode(bitand(ts.flags, 3), 1, to_number(NULL),
                  decode(bitand(t.property, 17179869184), 17179869184,
                                ds.pctinc_stg, s.extpct)),
           decode(bitand(ts.flags, 32), 32, to_number(NULL),
             decode(bitand(o.flags, 2), 2, 1,
                    decode(bitand(t.property, 17179869184), 17179869184,
                           ds.frlins_stg, decode(s.lists, 0, 1, s.lists)))),
           decode(bitand(ts.flags, 32), 32, to_number(NULL),
             decode(bitand(o.flags, 2), 2, 1,
                    decode(bitand(t.property, 17179869184), 17179869184,
                           ds.maxins_stg, 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(bitand(decode(bitand(t.property, 17179869184), 17179869184,
    
    
                                ds.bfp_stg, s.cachehint), 3),
                                1, 'KEEP', 2, 'RECYCLE', 'DEFAULT')),
           decode(bitand(o.flags, 2), 2, 'DEFAULT',
                  decode(bitand(decode(bitand(t.property, 17179869184), 17179869184,
    
    
                                ds.bfp_stg, s.cachehint), 12)/4,
                                1, 'KEEP', 2, 'NONE', 'DEFAULT')),
           decode(bitand(o.flags, 2), 2, 'DEFAULT',
                  decode(bitand(decode(bitand(t.property, 17179869184), 17179869184,
    
    
                                ds.bfp_stg, s.cachehint), 48)/16,
                                1, 'KEEP', 2, 'NONE', 'DEFAULT')),
           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'),
           case when (bitand(t.property, 32) = 32) then
             null
           when (bitand(t.property, 17179869184) = 17179869184) then
             decode(bitand(ds.flags_stg, 4), 4, 'ENABLED', 'DISABLED')
           else
             decode(bitand(s.spare1, 2048), 2048, 'ENABLED', 'DISABLED')
           end,
           case when (bitand(t.property, 32) = 32) then
             null
           when (bitand(t.property, 17179869184) = 17179869184) then
              decode(bitand(ds.flags_stg, 4), 4,
              case when bitand(ds.cmpflag_stg, 3) = 1 then 'BASIC'
                   when bitand(ds.cmpflag_stg, 3) = 2 then 'OLTP'
                   else decode(ds.cmplvl_stg, 1, 'QUERY LOW',
                                              2, 'QUERY HIGH',
                                              3, 'ARCHIVE LOW',
                                                 'ARCHIVE HIGH') end,
                   null)
           else
             decode(bitand(s.spare1, 2048), 0, null,
             case when bitand(s.spare1, 16777216) = 16777216   -- 0x1000000
                       then 'OLTP'
                  when bitand(s.spare1, 100663296) = 33554432  -- 0x2000000
                       then 'QUERY LOW'
                  when bitand(s.spare1, 100663296) = 67108864  -- 0x4000000
                       then 'QUERY HIGH'
                  when bitand(s.spare1, 100663296) = 100663296 -- 0x2000000+0x4000000
                       then 'ARCHIVE LOW'
                  when bitand(s.spare1, 134217728) = 134217728 -- 0x8000000
                       then 'ARCHIVE HIGH'
                  else 'BASIC' end)
           end,
           decode(bitand(o.flags, 128), 128, 'YES', 'NO'),
           decode(bitand(t.trigflag, 2097152), 2097152, 'YES', 'NO'),
           decode(bitand(t.property, 17179869184), 17179869184, 'NO',
                  decode(bitand(t.property, 32), 32, 'N/A', 'YES')),
           decode(bitand(t.property,16492674416640),2199023255552,'FORCE',
                         4398046511104,'MANUAL','DEFAULT')from sys.ts$ ts, sys.seg$ s, sys.obj$ co, sys.tab$ t, sys.obj$ o,
         sys.deferred_stg$ ds, sys.obj$ cx, sys.user$ cu, x$ksppcv ksppcv,
         x$ksppi ksppiwhere o.owner# = userenv('SCHEMAID')
      and o.obj# = t.obj#
      and bitand(t.property, 1) = 0
      and bitand(o.flags, 128) = 0
      and t.bobj# = co.obj# (+)
      and t.ts# = ts.ts#
      and t.file# = s.file# (+)
      and t.block# = s.block# (+)
      and t.ts# = s.ts# (+)
      and t.obj# = ds.obj# (+)
      and t.dataobj# = cx.obj# (+)
      and cx.owner# = cu.user# (+)
      and ksppi.indx = ksppcv.indx  and ksppi.ksppinm = '_dml_monitoring_enabled'

    查询同义词:

    select * from dba_synonyms d where d.synonym_name='USER_TABLES'

    在这里插入图片描述

    查询当前登录用户拥有的表
    在这里插入图片描述

    (2)ALL_类型(all_tables)

    在这里插入图片描述

    (3)DBA_类型(dba_tables)

    在这里插入图片描述

    2.动态性能视图

    2.1 概念

      存储数据库中每时每刻都在变化的信息,主要是数据库的活动状态信息。把存储在内存里的信息,和存储在控制文件里的信息,以视图的形式展现出来;

    2.2 常见的动态性能视图

    v$parameter

    初始化参数文件中所有项的值
    在这里插入图片描述

    v$process

    当前进程的信息
    在这里插入图片描述

    v$session

    有关会话的信息
    在这里插入图片描述

    v$sysstat

    基于当前操作会话进行的系统统计

    v$log

    从控制文件中提取有关重做日志组的信息
    在这里插入图片描述

    v$logfile

    有关实例重做日志组文件名及其位置的信息
    在这里插入图片描述

    v$lock

    当前进程已获得和正在请求的锁信息
    在这里插入图片描述

    v$transaction

    数据库事务信息
    在这里插入图片描述

    v$fixed_view_definition

    记录所有动态性能视图的定义信息
    在这里插入图片描述

    推荐教程:《Oracle视频教程

    以上就是oracle数据字典、数据字典视图及动态性能视图(总结分享)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    专题推荐:oracle
    上一篇:实例详解Oracle数据表导入导出 下一篇:一文掌握oracle启动过程
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• oracle中union怎么用• oracle是收费的吗• mysql与oracle有区别吗• oracle中12154错误是什么• oracle的sql语句中in怎么用
    1/1

    PHP中文网