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


DBA/ALL/USER/V_KaTeX parse error: Expected group after '_' at position 4: /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:该条记录的状态。