精华内容
下载资源
问答
  • Oracle 数据字典和数据字典视图

    千次阅读 2019-02-15 10:17:55
    Oracle 数据字典和数据字典视图
                   

    --==============================

    --Oracle 数据字典和数据字典视图

    --==============================

     

    数据字典

        是元数据的集合,从逻辑上和物理上描述了数据库及内容,存储于SYSTEMSYSAUX表空间内的若干段。

        SYS用户拥有所有的数据字典表,数据字典基本一般以$结尾,如col$tab$等,这些数据字典存放在system表空间中。

       

    数据字典的形成

        在数据库创建阶段创建,在使用阶段维护和更新

        无法通过DML操作来修改,只能通过相关的命令修改系统,来达到间接修改数据字典。

     

    数据字典的特点

        每个Oracle数据库的中枢

        描述数据库和它的对象

        包含只读的表和视图

        存储在SYSTEM表空间中

        拥有者是SYS用户

        Oracle服务器自己维护

        SELECT访问

     

    数据字典内容:

        数据字典提供下列信息:

           逻辑和物理的数据库结构

           对象的定义和空间分配

           一致性限制

           用户

           角色

           权限

           审计

     

    数据字典的主要用途:

        Oracle服务器用它查找下列信息:

           用户

           对象

           存储结构

           Oracle服务器修改数据字典当DDL语句执行的时候.

           用户和管理员们利用它了解数据库的信息.

              

    基础表和数据字典视图:  

        数据字典包括两个部分:

           基础表

                  存储数据库的描述

                  CREATE DATABASE命令创建(sql.bsq)

     

           数据字典视图

                  用于简化基础表的信息

                  通过PUBLIC同义词访问

                  由脚本catalog.sql创建

              

               数据字典基表中的数据很难看懂。因此,很少人直接访问这些基表。取而代之的是数据字典视图。

               数据字典视图分为类,它们以前辍来区分,前辍分别为:USERALLDBA

     

               USER_* 用户所拥有的对象信息

               ALL_*  用户能访问的对象信息

               DBA_*  整个数据库中的对象信息

       

    创建数据字典视图:

        建库后,运行以下脚本创建的

        $ORACLE_HOME/rdbms/admin/catalog.sql  创建常用的数据字典和同义词

        $ORACLE_HOME/rdbms/admin/catproc.sql  创建内建的存储过程、包等pl/sql对象

     

        DBCA建库时会自动运行这两个脚本,但如果手动建库的话,需手动运行。

     

    常用的数据字典:

        一般的概况: TABDICTIONARY, DICT_COLUMNS

        对象: DBA_TABLES, DBA_INDEXES, DBA_TAB_COLUMNS, DBA_CONSTRAINTS --->user_ ,all_

        空间分配: DBA_SEGMENTS, DBA_EXTENTS

        数据库结构: DBA_TABLESPACES, DBA_DATA_FILES

       

    动态性能视图:

        是将内存里的数据或控制文件里的数据以表的形式展现出来,它们实际都是虚拟表,并不是真正的表

        只要数据库在运行,就会不断更新动态性能视图

        一旦数据库关闭或崩溃,则动态性能视图里的数据就丢失,当数据库重新启动后,数据将会被更新

        所有的动态性能视图名称都存放在v$fixed_table里。这些动态性能视图都是以V_$开头,属主是sys  

        oracle为每个动态性能视图都创建了同义词,同义词将中间的“_”去掉了,形成以v$开头

       

        在同义词中查看v$session

           SQL> SELECT owner,synonym_name,table_owner,table_name,db_link

             2  FROM dba_synonyms WHERE synonym_name='V$SESSION';

     

           OWNER      SYNONYM_NAME TABLE_OWNER  TABLE_NAME   DB_LINK

           -------------------- --------------------    --------------------   --------------------   --------

           PUBLIC       V$SESSION            SYS       V_$SESSION 

       

           SQL> SET LONG 15000

           SQL> SELECT text FROM dba_views WHERE view_name='V_$SESSION';

     

           TEXT

           --------------------------------------------------------------------------------

           select "SADDR","SID","SERIAL#","AUDSID","PADDR","USER#","USERNAME","COMMAND","OW

           NERID","TADDR","LOCKWAIT","STATUS","SERVER","SCHEMA#","SCHEMANAME","OSUSER","PRO

           CESS","MACHINE","TERMINAL","PROGRAM","TYPE","SQL_ADDRESS","SQL_HASH_VALUE","SQL_

           ID","SQL_CHILD_NUMBER","PREV_SQL_ADDR","PREV_HASH_VALUE","PREV_SQL_ID","PREV_CHI

           LD_NUMBER","MODULE","MODULE_HASH","ACTION","ACTION_HASH","CLIENT_INFO","FIXED_TA

           BLE_SEQUENCE","ROW_WAIT_OBJ#","ROW_WAIT_FILE#","ROW_WAIT_BLOCK#","ROW_WAIT_ROW#"

           ,"LOGON_TIME","LAST_CALL_ET","PDML_ENABLED","FAILOVER_TYPE","FAILOVER_METHOD","F

           AILED_OVER","RESOURCE_CONSUMER_GROUP","PDML_STATUS","PDDL_STATUS","PQ_STATUS","C

           URRENT_QUEUE_DURATION","CLIENT_IDENTIFIER","BLOCKING_SESSION_STATUS","BLOCKING_I

           NSTANCE","BLOCKING_SESSION","SEQ#","EVENT#","EVENT","P1TEXT","P1","P1RAW","P2TEX

           T","P2","P2RAW","P3TEXT","P3","P3RAW","WAIT_CLASS_ID","WAIT_CLASS#","WAIT_CLASS"

     

           TEXT

           --------------------------------------------------------------------------------

           ,"WAIT_TIME","SECONDS_IN_WAIT","STATE","SERVICE_NAME","SQL_TRACE","SQL_TRACE_WAI

           TS","SQL_TRACE_BINDS" from v$session

     

           SQL> SELECT view_definition FROM v$fixed_view_definition

             2  WHERE view_name='V$SESSION';

     

           VIEW_DEFINITION

           ---------------------------------------------------------------------------------

           select  SADDR , SID , SERIAL# , AUDSID , PADDR , USER# , USERNAME , COMMAND ,

           OWNERID, TADDR , LOCKWAIT , STATUS , SERVER , SCHEMA# , SCHEMANAME ,OSUSER ,

           PROCESS , MACHINE , TERMINAL , PROGRAM , TYPE, SQL_ADDRESS , SQL_HASH_VALUE,

           SQL_ID, SQL_CHILD_NUMBER , PREV_SQL_ADDR , PREV_HASH_VALUE , PREV_SQL_ID,

           PREV_CHILD_NUMBER , MODULE , MODULE_HASH , ACTION , ACTION_HASH , CLIENT_INFO ,

           FIXED_TABLE_SEQUENCE , ROW_WAIT_OBJ# , ROW_WAIT_FILE# , ROW_WAIT_BLOCK# ,

           ROW_WAIT_ROW# , LOGON_TIME , LAST_CALL_ET , PDML_ENABLED , FAILOVER_TYPE ,

           FAILOVER_METHOD , FAILED_OVER, RESOURCE_CONSUMER_GROUP, PDML_STATUS,

           PDDL_STATUS, PQ_STATUS, CURRENT_QUEUE_DURATION, CLIENT_IDENTIFIER,

           BLOCKING_SESSION_STATUS, BLOCKING_INSTANCE,BLOCKING_SESSION,SEQ#,

           EVENT#,EVENT,P1TEXT,P1,P1RAW,P2TEXT,P2,P2RAW, P3TEXT,P3,P3RAW,

           WAIT_CLASS_ID, WAIT_CLASS#,WAIT_CLASS,WAIT_TIME,SECONDS_IN_WAIT,

           STATE,SERVICE_NAME, SQL_TRACE, SQL_TRACE_WAITS, SQL_TRACE_BINDS

           from GV$SESSION

           where inst_id = USERENV('Instance')   

     

    常用的数据字典视图、动态性能视图:

        dba_objects

        dba_tables

        dba_users

        dba_tablespaces

       

        V$CONTROLFILE 控制文件信息

        V$DATABASE    数据库信息

        V$DATAFILE    数据文件信息

        V$INSTANCE    实例信息

        V$PARAMETER       参数信息

        V$SESSION     会话信息

        V$SGA         SGA信息

        V$SGAINFO     SGA信息

        V$TABLESPACE  表空间信息

        V$THREAD     

        V$VERSION    

        V$option

     

        v$parameter显示的是session级的参数,也就是当前session的参数信息。

        如果没有使用alter session单独设置当前session的参数值,那么默认和system级的参数应该是一样的。

     

        v$system_parameter显示的是system级的参数,保存的是使用alter system修改的值(scope=both或者scope=memory)。

     

        上面两个都是当前已经生效的参数值。对于使用spfile的库,也可以暂时只修改spfile中的

        值。v$spparameter显示的就是保存在spfile中的参数值(scope=spfile)。

     

    五、更多

     

    Oracle 用户、对象权限、系统权限

     SQL 基础--> ROLLUPCUBE运算符实现数据汇总

     SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)

     SQL 基础--> 视图(CREATE VIEW)

     Oracle 常用目录结构(10g)

     

     

               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • 数据字典视图说明: 数据字典视图一般有三套:以存表的视图为例 dba_tables[DBA所有的], all_tables[所有用户所有的], user_tables[当前用户所有的] 对于DBA所有的,只有拥有DBA权限的用户才可以查询,否则提示表或...
  • oracle数据字典视图

    2017-09-01 09:50:00
    数据字典的概念 还记得我们在手工建库的时候,运行的两个脚本文件。... 数据字典是Oracle数据库中的一系列只读的参考表和视图。它与数据库内的其他数据相同,也是以标及视图的形式组织的。一个数据库的全部数据字典...

    数据字典的概念 
          还记得我们在手工建库的时候,运行的两个脚本文件。一个是catalog.sql,另一个是catproc.sql。catalog.sql是用来创建数据库的内部字典表的。catproc.sql是用来创建数据库的内建的存储过程。
           数据字典是Oracle数据库中的一系列只读的参考表和视图。它与数据库内的其他数据相同,也是以标及视图的形式组织的。一个数据库的全部数据字典表与数据字典视图都物理地存储在该数据库的SYSTEM表空间内。它由两个部分组成:数据字典基本表(也叫基表base table)、数据字典视图(也叫用户访问视图)。
           当创建数据库时数据字典也被创建。为了实时、准确地反映数据库的状态,用户对Oracle数据库进行操作时,数据字典将会被实时的自动更新。数据库依赖数据字典来记录、验证、管理正在进行的工作。
    数据字典的重要性
           数据字典是整个Oracle数据库的核心之一,描述了数据库自身的信息,以及数据库里记录对象的信息。比如说我们要对一个数据库中的一个表进行一个添加记录的操作。则需要定位到这个表位于哪个数据文件里,这个表的结构是什么等等才能够完成我们操作。数据字典就是记录着这样的信息(是以表的形式记录的)。

    数据字典基本表与数据字典视图的区别
    Structure of the Data Dictionary 
        The data dictionary consists of the following:
           Base Tables(基本/数据字典基本表)   
     The underlying tables that store information about the associated database. Only          Oracle should write to and read these tables. Users rarely access them directly           because they are normalized, and most of the data is stored in a cryptic format.
            基表存储的是一些与数据库相关的信息。只有Oracle才可以读写这些表。用户很少直接访问它们        。因为它们都是规范化的,而且大部分数据都是用一种保护的格式存储的。(只有Oracle才看得        懂,用户是无法看懂里面的信息的)
      
            User-Accessible Views(用户访问视图/数据字典视图) 
            The views that summarize and display the information stored in the base tables of         the data dictionary. These views decode the base table data into useful                   information, such as user or table names, using joins and WHERE clauses to                simplify the information. Most users are given access to the views rather than            the base tables.
            这个视图是对存储在数据字典的基表中的数据的总结与展示。通过用连接和where字句去简化信息        的方法,把这些视图将基表中的数据编码成有用的信息(所谓有用,就是用户可以看懂,理解的        形式),比如用户,表名等,而这种将数据编码是通过用连接和where字句与简化信息。很多用        户都被赋予了访问视图的权限,而没有访问基表的权限。
     

            这是Oracle Conceptes中对数据字典组成的介绍。简单地说:数据字典基本表就是给Oracle看的,而数据字典视图是为了方便用户而将基本表简化出来的(内容应该是一样的)。
             所有这些数据字典基本表与数据字典视图的所有者都是sys(oracle数据库的超级用户)。其他Oracle用户只可以查看,而不能用DML语句(update,delete,insert)去修改这些数据字典表(可能会带来不可恢复的损害)。
             为了方便其他用户访问这些视图,Oracle为所有的数据字典视图创建了公共的同名词(public synonym)。所谓的同名词就是别名。这样数据库里的任何用户都通过别名来访问有权查看的视图了。这些视图与同名词就是通过catalog.sql脚本创建的。

          数据字典视图分为三个层面:DBA视图(所有用户schema内的对象)、ALL视图(用户可访问的对象)、USER视图(用户schema内的对象)。
           DBA视图表示以DBA_开头的视图,包括了整个数据库范围的数据。dba_table表示整个数据库里所有表的信息。用户需要一定的授权才能访问DBA层面的视图。
           ALL视图表示以ALL_开头的视图,包含了当前登录用户有权限看到的数据。all_tables记录了当前登录用户有权限访问的所有表的信息。
           USER视图表示以USER_开头的视图,包含了当前登录用户所拥有的所有表的信息。
           三个视图的关系是DBA包含了ALL包含了USER
           dictionary视图记录了所有数据字典视图的名称。它的别名是dict。可以通过它来查看数据库中的视图。

     


    动态性能视图(动态性能表/Dynamic Performance Tables)

           除了用具体表存放数据字典外,还有一个数据字典,叫做动态性能视图。用于记录数据库的当前状态,是将内存里的数据或控制文件的数据以表的形式展现出来,是一种虚拟表(virtual table)。所有动态性能视图的名称都存放在v$fixed_table里。而这些动态性能视图都是以v_$开头,属主是用户sys。Oracle为每个动态性能视图都创建了同名词,同名词是将中间的“_”去掉了,都是以v$开头。
     动态性能表并不是真正的表,大多数用户不应访问其中的信息。但是数据库管理员可以对其进行查询,或在其上创建视图并将访问权限授予其他用户。这些视图有时被称为固定视图(fixed view),因为数据库管理员不能将其修改或移除。

    转载于:https://www.cnblogs.com/timlong/p/7461759.html

    展开全文
  • DBA_DBA_2PC_NEIGHBORS 包含待处理事务进入连接和退出连接信息 DBA_2PC_PENDING 包含等待恢复的分布式事务的信息 DBA_ALL_TABLES 显示数据库中所有表(对象表和关系表的描述 DBA_ANALYZE_OBJECTS 列出分析对象 DBA_...
  • 数据字典视图

    2014-06-12 21:16:00
    数据字典视图 数据自动视图分为三大类,分别用对应的前缀表示为user_*,all_*,dba_*分别表示的意思如下: user_*:有关用户所拥有的对象的信息,即用户自己创建的对象的信息 all_*:有关用户可以访问的...

    数据自动视图分为三大类,分别用对应的前缀表示为user_*,all_*,dba_*分别表示的意思如下:

    user_*:有关用户所拥有的对象的信息,即用户自己创建的对象的信息

    all_*:有关用户可以访问的对象的信息,即用户自己创建的对象信息加上用户可以有权限访问的对象的信息

    dba_*:有关整个数据库对象的信息

    这里的*可以是tables、indexes、objects等

    用前缀user开头的数据字典视图中的列与以all 、dba开头的字典的列几乎是一样的只是相比缺少了列owner,表示该对象的属主。因为是user开始的数据字典视图中的对象拥有者应该是当前登录用户。故不需要owner列来重复标注。

    所有的数据字典视图都是静态视图,当oracle数据库发生变化时并不及时的更新这些视图,只有当执行了oracle的analyze指令后这些视图才会被刷新。

    数据字典视图包含如下信息:

    1、对象的属主

    2、用户所拥有的权限

    3、对象的创建时间

    4、对象存储参数的设置

    5、对象存储空间的使用情况

    ex:查看当前登录用户所拥有的表:select table_name from user_tables;

          查看当前登录用户可用的表:select table_name,owner from all_tables where owner not like '%SYS;'

    另外表user_catalog(别名cat)是user_tables中table_name,table_type两列组合成的新表。用户可以用user_catalog看到自己所拥有的表的表名和表类型。与使用user_tables相比使用user_catalog更简单些。

    select * from user_catalog;或者select * from cat;

    posted on 2014-06-12 21:16 moonfans 阅读( ...) 评论( ...) 编辑 收藏

    转载于:https://www.cnblogs.com/moonfans/p/3784689.html

    展开全文
  • 数据字典视图的查询

    千次阅读 2016-10-26 12:44:33
    数据字典视图的查询 SQL> desc dictionary   Name Null? Type  ----------------------------------------- -------- ----------------------------  TABLE_NAME


    数据字典视图的查询




    SQL> desc dictionary 
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     TABLE_NAME                                         VARCHAR2(30)
     COMMENTS                                           VARCHAR2(4000)


    SQL> desc v$fixed_table
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     NAME                                               VARCHAR2(30)
     OBJECT_ID                                          NUMBER
     TYPE                                               VARCHAR2(5)
     TABLE_NUM                                          NUMBER


    select * from dictionary; 

    select * from v$fixed_table; 可以查询所有的数据字典(视图)

    dictionary 含有一列comments 注释,

    通过where 条件过滤table_name 项,

    如,select * from dictionary where table_name like '%INDEX%';


    SQL> col table_name for a30
    SQL> col comments for a50
    SQL> set line 200
    SQL> select * from dictionary where table_name like '%INDEX%';


    TABLE_NAME                     COMMENTS
    ------------------------------ --------------------------------------------------
    DBA_INDEXES                    Description for all indexes in the database
    DBA_INDEXTYPES                 All indextypes
    DBA_INDEXTYPE_ARRAYTYPES       All array types specified by the indextype
    DBA_INDEXTYPE_COMMENTS         Comments for user-defined indextypes
    DBA_INDEXTYPE_OPERATORS        All indextype operators
    DBA_PART_INDEXES
    DBA_XML_INDEXES                Description of all XML indexes in the database
    USER_INDEXES                   Description of the user's own indexes
    USER_INDEXTYPES                All user indextypes
    USER_INDEXTYPE_ARRAYTYPES      All array types specified by the indextype
    USER_INDEXTYPE_COMMENTS        Comments for user-defined indextypes


    TABLE_NAME                     COMMENTS
    ------------------------------ --------------------------------------------------
    USER_INDEXTYPE_OPERATORS       All user indextype operators
    USER_PART_INDEXES
    USER_XML_INDEXES               Description of the user's own XMLType indexes
    ALL_INDEXES                    Descriptions of indexes on tables accessible to th
                                   e user


    ALL_INDEXTYPES                 All indextypes available to the user
    ALL_INDEXTYPE_ARRAYTYPES       All array types specified by the indextype
    ALL_INDEXTYPE_COMMENTS         Comments for user-defined indextypes
    ALL_INDEXTYPE_OPERATORS        All operators available to the user
    ALL_PART_INDEXES


    TABLE_NAME                     COMMENTS
    ------------------------------ --------------------------------------------------
    ALL_XML_INDEXES                Description of the all XMLType indexes that the us
                                   er has privileges on


    INDEX_HISTOGRAM                statistics on keys with repeat count
    INDEX_STATS                    statistics on the b-tree
    GV$INDEXED_FIXED_COLUMN        Synonym for GV_$INDEXED_FIXED_COLUMN
    V$INDEXED_FIXED_COLUMN         Synonym for V_$INDEXED_FIXED_COLUMN


    25 rows selected.




    展开全文
  • oracle---数据字典视图

    2017-01-13 14:45:11
    数据字典由4部分组成 内部表、数据字典表、数据字典视图、动态性能视图。 user_tables-----当前用户拥有的所有表 all_tables------当前用户可以访问的所有表 dba_tables------所有方案的所有表 select table...
  • 有两个数据字典视图提供了约束的详细信息: - user_constraints:如果知道约束名,想知道约束类型,可以查询user_constraints,这个视图描述了约束的定义,但是它不描述约束定义在哪些字段名称上。 - user_cons_...
  • 常用的查询数据字典视图

    千次阅读 2013-06-22 20:23:35
    6.查询用户所有物化视图 select mview_name from user_mviews 7.查询用户所有job select job_name from user_scheduler_jobs 8.查询用户所有type select type_name from user_types 9.查询...
  • 数据字典视图概述 数据字典是ORACLE数据库的核心组成部分,数据库中的用户信息,表信息,索引信息,权限信息等一切数据库运行必须要的数据都是保存在数据字典里面。数据字典的OWNER为SYS,所以访问起来不是很...
  • oracle 静态数据字典视图 和 动态数据字典视图由于ORACLE数据库的版本不同视图的内容也不同,必须入时有效的获取ORACLE系统信息才能找到很好的对策。 <br />a:静态数据字典视图名一般用复数,而动态性能视图名...
  • oracle数据字典视图

    2021-05-04 07:38:19
    1. 数据字典都是静态视图,只有执行analyze命令后才刷新。sys用户拥有所有的动态性能视图。2. user_table---------保存了该用户下的有哪些表;user_catalog---------保存了该用户所拥有的表的名字及类型,别名cat。3...
  • a:数据字典视图名一般用复数,而动态性能视图名一般用单数,比如dba_tablepsaces vs v$tablespace。b:数据字典视图只有在数据库open的情况下才可以访问,而部分动态性能视图可以在数据库非open状...
  • Oracle 常用数据字典表、视图的总结 一数据字典的分类 1.静态数据字典表的 2.静态数据字典视图 3 动态数据字典表 4 动态数据字典视图 二 数据字典的使用 1.静态数据字典表的使用 静态数据字典表只能由ORA...
  • 1、数据字典数据库一般都包括表、视图、触发器、存储过程、索引等对象,而这些数据库对象,一般都会保存在数据库的数据字典里。数据字典是数据库的重要组成部分,它记录了数据库的系统信息、对象信息等。数据字典...
  • 我们都知道Oracle数据字典文档中静态数据字典视图共分为三类,动态Oracle数据字典的相关视图又分为哪几类呢?以及Oracle数据字典的相关视图又有什么样的作用呢?这些问题在此篇文章中都会找到答案。动态数据字典&...
  • 数据字典视图说明: 数据字典视图一般有三套:以存表的视图为例 dba_tables[DBA所有的], all_tables[所有用户所有的], user_tables[当前用户所有的] 对于DBA所有的,只有拥有DBA权限的用户才可以查询,否则提示表或...
  • Oracle数据库提供了一组视图 - 统称为数据字典,能够使用SQL 和 PL / SQL语言获取对PL/SQL代码的疑问。 数据字典基础  数据字典由数据库实例... 大多数数据字典视图有三个版本:  USER视图:有关您所连接...
  • Oralce静态数据字典表目录,为采集前获取上游Oralce系统表结构做准备
  • 文章目录静态数据字典三组常用的数据字典视图其他常用特殊数据字典视图动态性能视图静态数据字典与动态性能视图的比较 静态数据字典 数据字典是Oracle数据管理系统的核心,它存储整个Oracle数据库的所有数据定义信息...
  • 数据字典视图和动态性能视图的区别 : a:数据字典视图名一般用复数,而动态性能视图名一般用单数,比如dba_tablepsaces vs v$tablespace。 b:数据字典视图只有在数据库opn的情况下才可以访问,而部分动态性能视图...
  • 是oracle数据库中最重要的组成部分,提供了数据库的一些系统信息(存放静态的信息);...组成:数据字典基表和数据字典视图,其中基表存储数据库的基本信息,普通用户不能直接访问数据字典的基表;数据...
  • 静态数据字典视图dba_ 数据库中的所有对象 all_ 当前用户可以访问的对象user_当前用户拥有的对象user_tables 当前用户拥有的所有的表 all_tables ...
  • Oracle常用数据字典表(系统表或系统视图)及查询SQL数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息的视图等。数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 89,771
精华内容 35,908
关键字:

数据字典视图