zoukankan      html  css  js  c++  java
  • oracle之二数据字典表和动态性能视图

    数据字典表和动态性能视图

    Oracle提供了大量的内部表,它们记录了数据库对象的更改和修正。可以将这些内部表划分为两种主要类型:静态的数据字典表和动态的性能表。这些内部表是由oracle维护的,可以说它们是只读表。用户包括sys都不能修改,只能查看。

    10.1 数据字典

    10.1.1 数据字典的功能(Data Dictionary)
    1) central of database
    2)read_only table and views,通过select访问
    3)Oracle server 维护,ddl操作会更新
    4)记录数据库的物理、逻辑结构(表空间)和模式信息及对象信息(用户、约束、权限、审计等)
    5)存放在system tablespace

    通过dict记录了所有数据字典表的名称

    SQL> select * from dict where table_name='DBA_OBJECTS';

    TABLE_NAME COMMENTS
    --------------------------------------------- ------------------------------------------------------------
    DBA_OBJECTS All objects in the database

    SQL> select count(*) from dict;

    COUNT(*)
    ----------
    2323


    10.1.2 数据字典的组成:

    数据字典由四部分组成:

    1)内部表(X$): Oracle的核心,官网不做说明, Oracle通过大量X$建立起大量视图,仅供用户select。
    2)数据字典表: 用以存储表、索引、约束以及其他数据库结构信息,通常以$结尾,如tab$,obj$,ts$,aud$等。
    3)动态性能表(V$): 实时更新反应当前的数据库状态,官网对V$视图有详尽的说明。
    4)数据字典视图: 在X$表和数据字典表上创建,通常分为三类dba_, all_, user_.

    实际工作中最常用的是数据字典视图和动态性能表:

    10.1.3 数据字典视图:静态(static)视图

    static :在数据库open状态下访问,可以通过静态视图了解database的架构(记录database的架构,object的数据定义和存储等信息)

    dba_ : 存储所有用户对象的信息(默认只能有sys/system 用户访问)
    all_ : 存储当前用户能够访问的对象(包括用户所拥有的对象和别的用户授权访问的对象)的信息。
    user_:存储当前用户所拥有的对象的相关信息。

    考点:实例参数O7_DICTIONARY_ACCESSIBILITY在缺省时为FALSE,这将限制具有select any table权限的非DBA用户访问sys用户下的对象,否则这些非DBA用户也能查看dba_。

    SQL> select count(*) from dict;

    COUNT(*)
    ----------
    2323

    10.2 动态性能表(V$)

    是维护当前实例信息的,由于不断的更新,所以也叫动态视图。其底层是一组虚拟的动态表称为X$表,oracle不允许直接访问X$表,而是在这些表上创建视图,然后再创建这些视图的同义词。

    基表(x$)-------------视图(v_$)--------------同义词v$-------User access

    可以通过v$fixed_table 视图 查到所有的动态视图和基表的名称;用于调优和数据库监控。从Oracle8开始, GV$视图开始被引入,其含义为Global V$,GV$的产生是为了满足OPS环境的需要,除了一些特例以外,每个V$视图都有一个GV$视图存在。

    SQL> select count(*) from v$fixed_table;

    COUNT(*)
    ----------
    1741

    *考点:动态性能视图填充了来自实例和控制文件的信息,前缀为DBA_、ALL_、USER_的视图则填充了来自数据字典的信息,此差异决定了可以在不同启动阶段查询那些视图。mount大部分的动态性能视图可以访问,数据字典不行

    =============
    seven DAY
    =============


    第十一章: Oracle的存储架构

    DATABASE-->TABLESPACES-->SEGMENTS-->EXENTS-->BLOCKS (PPT-I-36)

    11.1 TABLESPACE(表空间)分类

    PERMANENT 永久表空间
    UNDO 撤销表空间
    TEMPORARY 临时表空间

    11.1.1 表空间的管理方式:

    重点是段的管理方式和区的管理方式是在建立表空间时确定的。

    段管理方式有AUTO和MANUAL两种,区管理方式有本地管理和字典管理(已淘汰)两种。

    03:32:36 SQL> select tablespace_name,contents ,extent_management,segment_space_management from dba_tablespaces;

    TABLESPACE_NAME CONTENTS EXTENT_MAN SEGMEN
    ------------------------------ --------- ---------- ------
    SYSTEM PERMANENT DICTIONARY MANUAL
    SYSAUX PERMANENT LOCAL AUTO
    TEMP TEMPORARY LOCAL MANUAL
    USERS PERMANENT LOCAL AUTO
    EXAMPLE PERMANENT LOCAL AUTO
    UNDO_TBS01 UNDO LOCAL MANUAL
    TMP01 TEMPORARY LOCAL MANUAL
    TBS_16K PERMANENT LOCAL AUTO
    BIG_TBS PERMANENT LOCAL AUTO
    TEST PERMANENT DICTIONARY MANUAL

    注意两点:
    1)如果system表空间是数据字典管理,其他表空间可以是数据字典管理或local管理(默认)
    2)字典管理可以转换成本地管理,但是对于系统表空间,要求执行一些附加步骤,比较麻烦。

    execute dbms_space_admin.tablespace_migragte_to_local('tablespacename');

  • 相关阅读:
    hdu5360 Hiking(水题)
    hdu5348 MZL's endless loop(欧拉回路)
    hdu5351 MZL's Border(规律题,java)
    hdu5347 MZL's chemistry(打表)
    hdu5344 MZL's xor(水题)
    hdu5338 ZZX and Permutations(贪心、线段树)
    hdu 5325 Crazy Bobo (树形dp)
    hdu5323 Solve this interesting problem(爆搜)
    hdu5322 Hope(dp)
    Lightoj1009 Back to Underworld(带权并查集)
  • 原文地址:https://www.cnblogs.com/jinxf/p/9171285.html
Copyright © 2011-2022 走看看