Oracle常用的系统表及主要字段

Oracle常用的系统表及主要字段

​ DBA/ALL/USER/V_$/GV_$/SESSION/INDEX开头的绝大部分都是视图。

​ V$是动态性能视图,存在于controlfile中,数据库在mount状态下可以查询,

​ dba是静态视图,存在于数据库中,只能在open时查询.

(1)dba_开头 、 user_开头 —— 用户相关

  • dba_users 数据库用户信息

  • dba_objects 数据库对象信息 ——视图

    • OWNER:对象拥有者
    • OBJECT_ID:对象ID
    • OBJECT_NAME:对象名字
    • OBJECT_TYPE:对象类型,如table,view,index等
    • CREATED:对象创建时间
    • LAST_DDL_TIME:对象最后修改DDL时间,其中包含grants和revokes操作
  • dba_segments 表段信息

    • OWNER SEGMENT_NAME PARTITION_NAME
    • SEGMENT_TYPE:段的类型,可能是table,index,logindex,lobsegment等。
    • header_file:表示这个段的头在哪个数据文件里,因为段可以跨数据文件。
    • header_block:表示这个段的头在数据文件的第几个block里。
    • bytes:段的大小
    • blocks:段占用了多少个block
    • extents:分配了多少个extent。
    • max_extents:最多分配多少个extent(以个数计)。
  • dba_extents 数据区信息

    每个EXTETN基本就是8个BLOCK数量,大小是65536个字节

    • OWNER SEGMENT_NAME PARTITION_NAME SEGMENT_TYPE
    • TABLESPACE_NAME:表示表空间名字
    • EXTENT_ID: 区 的ID。
    • FILE_ID: 区所在文件ID —— 与DBA_DATA_FILES中的FILE_ID相连
    • BLOCK_ID: 区所在块的ID
    • BYTES: 该区的字节
    • BLOCKS : 该区的块数量
  • dba_indexes 用户模式的索引信息

    • OWNER: 索引拥有者
    • INDEX_NAME:索引名字
    • INDEX_TYPE:索引类型
    • TABLE_OWNER:表的拥有者
    • TABLE_NAME:表名
    • TABLE_TYPE:表类型
    • UNIQUENESS:是否唯一
    • COMPRESSION:是否压缩
    • TABLESPACE_NAME:属于哪个表空间
    • LOGGING:索引改变是否记录到日志
    • LAST_ANALYZED:最近分析索引统计信息的日期 ——
    • INSTANCES:索引被多少实例扫描
    • STATUS:表示一个未分区的索引是合法的还是不可用的
  • dba_data_files 数据文件设置信息

    • FILE_NAME 数据库数据文件的名字,也是物理文件存放地址

    • FILE_ID 数据库文件的ID

    • TABLESPACE_NAME

    • BYTES 文件的大小,以bytes为单位

    • BLOCKS ORACLE文件的大小

    • STATUS 文件的状态

    • RELATIVE_FNO 表空间相对文件号

    • AUTOEXTENSIBLE 是否自动扩展

    • MAXBYTES 文件的最大多少byte

    • MAXBLOCKS ORACLE文件的最大数

    • USER_BYTES 指文件中有用的大小

    • USER_BLOCKS ORACLE文件有用的大小

  • dba_temp_files 临时数据文件信息

  • dba_tablespaces 数据库表空间信息

    一个数据库可以有多个表空间;一个用户默认使用一个表空间;一个表空间有多个数据文件组成;数据库对象、表、索引的数据被存储在表空间的数据文件中;

    • TABLESPACE_NAME
    • BLOCK_SIZE
    • INITIAL_EXTENT(大小)、MIN_EXTENTS、MAX_EXTENTS(最大分区个数)、NEXT_EXTENT、PCT_INCREASE
    • MAX_SIZE Default maximum size of segments
    • STATUS
    • LOGGING

(2)v$开头 —— 动态性能视图

  • v$process 数据库服务器进程信息

    • PID: Oracle进程identifier。
    • ADDR: process address。可以和v$session的paddr字段关联。
    • SPID: 操作系统进程identifier。
    • USERNAME: 操作系统进程的用户名。并非Oracle用户名。
    • SERIAL#:: process serial number
  • v$session 会话信息

    • SADDR: session address
    • SERIAL#: sid 会重用,但是同一个sid被重用时,serial#会增加,不会重复。
    • PADDR: process address,关联v$process的addr字段,可以通过这个字段查处当前session对应操作系统的那个进程的id。
    • USER# USERNAME: session's user id。等于dba_users中的user_id。Oracle内部进程的user#为0。
    • COMMAND: session正在执行的SQL Id。1代表create table,3代表select。
    • TADDR: 当前的transaction address。可以用来关联v$transaction的addr字段。
    • LOCKWAIT: 可以通过这个字段查询出当前正在等待的锁的相关信息。sid & lockwait与v$lock中的sid & kaddr相对应。
    • STATUS: 用来判断session状态。Active:正执行SQL语句。Inactive:等待操作。Killed:被标注为删除。
    • OSUSER: 客户端操作系统用户名。
    • PROCESS: 客户端process id。
    • PROGRAM: 客户端应用程序。比如ORACLE.EXE (PMON)或者sqlplus.exe
    • SQL_ADDRESS, SQL_HASH_VALUE, SQL_ID, SQL_CHILD_NUMBER: session正在执行的sql statement,和v$sql中的address, hash_value, sql_id, child_number相对应。
    • ROW_WAIT_OBJ#: 被锁定行所在table的object_id。和dba_objects中的object_id关联可以得到被锁定的table name。
    • ROW_WAIT_ROW#: session当前正在等待的被锁定的行。
    • LOGON_TIME: session logon time
  • v$lock 列出当前系统持有的或正在申请的所有锁的情况

    • ADDR Address of lock state object
    • SID 会话的sid,可以和v$session 关联
    • TYPE 区分该锁保护对象的类型 主要关注TX(Transaction enqueue)和TM(DML enqueue)两种类型的锁
    • LMODE 锁的模式
      • 0 – none 1 – null (NULL) 2 – row-S (SS) 3 – row-X (SX) 4 – share (S) 5 – S/Row-X (SSX) 6 – exclusive (X)
    • CTIME 已持有或者等待锁的时间
    • BLOCK 是否阻塞其他会话锁申请 1:阻塞 0:不阻塞
  • v$locked_object 列出当前系统中哪些对象正被锁定

  • v$transaction 列出系统中的活动事务。事务完成后(COMMIT 或 ROLLBACK),条目应该消失。

    • ADDR
    • UBAFIL Undo block address (UBA) filenum 未提交的文件号
    • UBAREC UBA record number
    • STATUS
    • START_TIME
    • SES_ADDR User session object address
    • FLAG
    • USED_UBLK Number of undo blocks used
    • START_SCNB Start system change number (SCN) base
  • v$sql 当前查询过的sql语句访问过的资源及相关的信息

    • HASH_VALUE

    • SQL_TEXT: SQL文本的前 1000个字符

    • SHARABLE_MEM:占用的共享内存大小 (单位: byte)

    • SORTS:完成的排序数

    • USERS_OPENING:执行语句的用户数

    • FETCHES: SQL语句的 fetch数

    • EXECUTIONS:自它被载入缓存库后的执行次数

    • LOADS:对象被载入过的次数

    • FIRST_LOAD_TIME:初次载入时间

    • BUFFER_GETS:读缓存区次数

    • ROWS_PROCESSED:解析 SQL语句返回的总列数

    • OPTIMIZER_COST:优化器给出的本次查询成本

    • CPU_TIME:解析 /执行 /取得等 CPU使用时间 (单位,毫秒 )

    • ELAPSED_TIME:解析 /执行 /取得等消耗时间 (单位,毫秒 )、

    • OUTLINE_SID: outline session标识

    • OBJECT_STATUS:对象状态 (VALID or INVALID)

    • -- 查看消耗资源最多的 SQL
      SELECT hash_value, executions, buffer_gets, disk_reads, parse_calls
      FROM V$SQLAREA
      WHERE buffer_gets > 10000000 OR disk_reads > 1000000
      ORDER BY buffer_gets + 100 * disk_reads DESC ;
      
  • v$datafile 数据文件信息

    • FILE# File identification number
    • NAME 数据文件的名称
    • CREATION_CHANGE# Change number at which the datafile was created
    • CREATION_TIME 数据文件创建的时间戳
    • TS# 表空间号
    • STATUS 文件类型(系统或用户)及其状态。值:OFFLINE, ONLINE, SYSTEM, RECOVER, SYSOFF
    • ENABLED 描述从 SQL 访问文件的方式:
    • CHECKPOINT_CHANGE# 最后一个检查点的 SCN
    • CHECKPOINT_TIME 检查点的时间戳#
    • LAST_TIME 上次更改的时间戳
    • BYTES 当前数据文件大小(以字节为单位)
    • BLOCKS 当前数据文件大小(以块为单位)
    • BLOCK_SIZE 数据文件的块大小
  • v$tempfile 临时文件信息

  • v$archived_log 归档日志信息

    • NAME:记录归档文件路径和名称。
    • THREAD#:归档线程号,RAC环境下适用。
    • SEQUENCE#:归档文件序号。
    • FIRST_TIME:等同于创建时间。
    • CREATOR:该条记录的创建者(告诉你究竟是哪个进程干的)。
    • APPLIED:是否被应用,Data Guard环境下适用。
    • STATUS:该条记录的状态。

参考 https://blog.csdn.net/u010691256/article/details/49275081

Oracle数据库逻辑构成 参考链接:https://blog.csdn.net/u013933870/article/details/51700979

posted @ 2022-01-22 15:55  给我一条小板凳  阅读(864)  评论(0)    收藏  举报