oracle 数据字典、数据字典视图,动态性能视图(展示数据库的活动状态信息)

文章目录

    • 1.数据字典
      • 1.1 概念
      • 1.2 数据字典视图
        • 1.2.1 三种类型
          • (1)USER_类型 (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

1.数据字典

1.1 概念

  数据字典记录数据库最基本的信息,包括数据字典基本表和数据字典视图;数据字典基本表由 $ORACLE_HOME\RDBMS\ADMIN\sql.bsq创建
oracle 数据字典、数据字典视图,动态性能视图(展示数据库的活动状态信息)_第1张图片
oracle 数据字典、数据字典视图,动态性能视图(展示数据库的活动状态信息)_第2张图片

  数据字典基本表,属于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';

oracle 数据字典、数据字典视图,动态性能视图(展示数据库的活动状态信息)_第3张图片
查询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 ksppi
where 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'

在这里插入图片描述

查询当前登录用户拥有的表
oracle 数据字典、数据字典视图,动态性能视图(展示数据库的活动状态信息)_第4张图片

(2)ALL_类型(all_tables)

oracle 数据字典、数据字典视图,动态性能视图(展示数据库的活动状态信息)_第5张图片

(3)DBA_类型(dba_tables)

oracle 数据字典、数据字典视图,动态性能视图(展示数据库的活动状态信息)_第6张图片

2.动态性能视图

2.1 概念

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

2.2 常见的动态性能视图

v$parameter

初始化参数文件中所有项的值
oracle 数据字典、数据字典视图,动态性能视图(展示数据库的活动状态信息)_第7张图片

v$process

当前进程的信息
oracle 数据字典、数据字典视图,动态性能视图(展示数据库的活动状态信息)_第8张图片

v$session

有关会话的信息
oracle 数据字典、数据字典视图,动态性能视图(展示数据库的活动状态信息)_第9张图片

v$sysstat

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

v$log

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

v$logfile

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

v$lock

当前进程已获得和正在请求的锁信息
oracle 数据字典、数据字典视图,动态性能视图(展示数据库的活动状态信息)_第10张图片

v$transaction

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

v$fixed_view_definition

记录所有动态性能视图的定义信息
oracle 数据字典、数据字典视图,动态性能视图(展示数据库的活动状态信息)_第11张图片

你可能感兴趣的:(oracle,oracle)