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');

  • 相关阅读:
    React Native学习(一)——搭建开发环境
    Linux 命令系列之 seq
    Linux 提高操作效率之 tab 命令补全
    Atlassian 系列软件安装(Crowd+JIRA+Confluence+Bitbucket+Bamboo)
    代码质量管理 SonarQube 系列之 安装
    kworkerds 挖矿木马简单分析及清理
    shell 脚本常用调试方法
    JVM 调优之 Eclipse 启动调优实战
    基于 Njmon + InfluxDB + Grafana 实现性能指标实时可视监控
    nmon 的下一代工具 njmon
  • 原文地址:https://www.cnblogs.com/jinxf/p/9171285.html
Copyright © 2011-2022 走看看