ORACLE常用系统表大全

背景:最近一段时间经常需要统计分析数据,使用传统的查询sql语句有时候感觉查询特别慢,便想着,如何使用数据库自带的系统表帮助解决问题,提高效率呢。于是乎便学习到如下:ORACLE的一些常用系统表说明和介绍。

在Oracle中: 数据字典dict总是属于Oracle用户sys的。

1:用户信息

dba_users;
改口令:alter user spgroup identified by spgtest;

2:表空间

dba_data_files
dba_tablespaces;//表空间
select tablespace_name,sum(bytes), sum(blocks) from dba_free_space group by tablespace_name;//空闲表空间
select * from dba_data_files where tablespace_name=’RBS’;//表空间对应的数据文件
select * from dba_segments where tablespace_name=’INDEXS’;

3:数据库对象

dba_objects
CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。

4:表

dba_tables
dba_extents
user_tab_columns /列信息
select extent_id,bytes from dba_extents where segment_name=’CUSTOMERS’ and segment_type=’TABLE’ order by extent_id;//表使用的extent的信息。segment_type=’ROLLBACK’查看回滚段的空间分配信息

5:索引

dba_indexes;//索引,包括主键索引
dba_ind_columns;//索引列。
user_indexes
select i.index_name,i.uniqueness,c.column_name from user_indexes i,user_ind_columns c where i.index_name=c.index_name and i.table_name =’ACC_NBR’;//联接使用

6:序列

dba_sequences

7:视图

dba_views
all_views
text 可用于查询视图生成的脚本

8:聚簇

dba_clusters

9:快照

dba_snapshots
快照、分区应存在相应的表空间。

10:同义词

dba_synonyms

11:数据库链

dba_db_links
acc_nbr
在spbase下建数据库链
create database link dbl_spnew connect to spnew identified by spnew using ‘jhhx’;
insert into acc_nbr@dbl_spnew
select * from acc_nbr where nxx_nbr=’237’ and line_nbr=’8888’;

12:触发器

dba_trigers
存储过程,函数从dba_objects查找。
其文本:select text from user_source where name=’BOOK_SP_EXAMPLE’;
建立出错:select * from user_errors;
oracle总是将存储过程,函数等软件放在SYSTEM表空间。

13:约束

(1)约束是和表关联的,可在create table或alter table table_name add/drop/modify来建立、修改、删除约束。
可以临时禁止约束,如:
alter table book_example disable constraint book_example_1;
(2)主键和外键被称为表约束,而not null和unique之类的约束被称为列约束。通常将主键和外键作为单独的命名约束放在字段列表下面,而列约束可放在列定义的同一行,这样更具有可读性。
(3)列约束可从表定义看出,即describe;表约束即主键和外键,可从dba_constraints和dba_cons_columns 查。
select * from user_constraints where table_name=’BOOK_EXAMPLE’;
(4)定义约束可以无名(系统自动生成约束名)和自己定义约束名(特别是主键、外键)如:create table book_example (identifier number constranit book_example_1 not null);

常用表附录: dba_开头…..

dba_users 数据库用户信息
dba_segments 表段信息
dba_extents 数据区信息
dba_objects 数据库对象信息
dba_tablespaces 数据库表空间信息
dba_data_files 数据文件设置信息
dba_temp_files 临时数据文件信息
dba_rollback_segs 回滚段信息
dba_ts_quotas 用户表空间配额信息
dba_free_space数据库空闲空间信息
dba_profiles 数据库用户资源限制信息
dba_sys_privs 用户的系统权限信息
dba_tab_privs用户具有的对象权限信息
dba_col_privs用户具有的列对象权限信息
dba_role_privs用户具有的角色信息
dba_audit_trail审计跟踪记录信息
dba_stmt_audit_opts审计设置信息
dba_audit_object 对象审计结果信息
dba_audit_session会话审计结果信息
dba_indexes用户模式的索引信息

常用表附录: user_开头…..

user_objects 用户对象信息
user_source 数据库用户的所有资源对象信息
user_segments 用户的表段信息
user_tables 用户的表对象信息
user_tab_columns 用户的表列信息
user_constraints 用户的对象约束信息
user_sys_privs 当前用户的系统权限信息
user_tab_privs 当前用户的对象权限信息
user_col_privs 当前用户的表列权限信息
user_role_privs 当前用户的角色权限信息
user_indexes 用户的索引信息
user_ind_columns用户的索引对应的表列信息
user_cons_columns 用户的约束对应的表列信息
user_clusters 用户的所有簇信息
user_clu_columns 用户的簇所包含的内容信息
user_cluster_hash_expressions 散列簇的信息

常用表附录:v$开头

v$database 数据库信息
v$datafile 数据文件信息
v$controlfile控制文件信息
v$logfile 重做日志信息
v$instance 数据库实例信息
v$ log 日志组信息
v$loghist 日志历史信息
v$sga 数据库SGA信息
v$parameter 初始化参数信息
v$process 数据库服务器进程信息
v$bgprocess 数据库后台进程信息
v$controlfile_record_section 控制文件记载的各部分信息
v$thread 线程信息
v$datafile_header 数据文件头所记载的信息
v$archived_log归档日志信息
v$archive_dest 归档日志的设置信息
v$logmnr_contents 归档日志分析的DML DDL结果信息
v$logmnr_dictionary 日志分析的字典文件信息
v$logmnr_logs 日志分析的日志列表信息
v$tablespace 表空间信息
v$tempfile 临时文件信息
v$filestat 数据文件的I/O统计信息
v$undostat Undo数据信息
v$rollname 在线回滚段信息
v$session 会话信息
v$transaction 事务信息
v$rollstat 回滚段统计信息
v$pwfile_users 特权用户信息
v$sqlarea 当前查询过的sql语句访问过的资源及相关的信息
v$sql
v$sysstat 数据库系统状态信息

常用表附录: all_开头

all_users 数据库所有用户的信息
all_objects 数据库所有的对象的信息
all_def_audit_opts 所有默认的审计设置信息
all_tables 所有的表对象信息
all_indexes所有的数据库对象索引的信息

常用表附录: session_开头

session_roles 会话的角色信息
session_privs 会话的权限信息

常用表附录: index_开头

index_stats 索引的设置和存储信息

常用表附录: 伪表

dual 系统伪列表信息

其他

1、sysobjects
  系统对象表。 保存当前数据库的对象,如约束、默认值、日志、规则、存储过程等
  sysobjects 重要字段解释:
  sysObjects (
  Name sysname, ——object 名称
  id int, ——object id
  xtype char(2), —— object 类型
  type char(2), —— Object 类型(与xtype 似乎一模一样? 有点郁闷…)
  uid smallint, —— object 所有者的ID
  …… ——其他的字段不常用到。
  )
  注:需要解释的是 xtype 和type 是一模一样的,他的数据为:
  C = CHECK 约束
  D = 默认值或 DEFAULT 约束
  F = FOREIGN KEY 约束
  FN = 标量函数
  IF = 内嵌表函数
  K = PRIMARY KEY 或 UNIQUE 约束
  L = 日志
  P = 存储过程
  R = 规则
  RF = 复制筛选存储过程
  S = 系统表
  TF = 表函数
  TR = 触发器
  U = 用户表
  V = 视图
  X = 扩展存储过程
  该表中包含该数据库中的所有对象,如有那些表 存储过程 视图 等信息
2、sysColumns 数据库字段表。 当前数据库的所有字段都保留在里面。
  重要字段解释:
  sysColumns (
  name sysname, ——字段名称
  id int, ——该字段所属的表的ID
  xtype tinyInt, ——该字段类型,关联sysTypes表
  length smallint, ——该字段物理存储长度
  ……
  )
  比如要查询某一个张表的有那些字段和这些字段的长度
3、sysUsers 对数据库的用户进行管理
  当前数据库的系统组,以及用户。
  sysUsers(
  uid smallint, ——用户id
  name smallint , ——名称
  uid varbinary(85) , ——属于一个登陆
  ……
  ) 
4、sysdenpends
  当前数据库的依赖关系。 比如我要修改某一张的结构时,怕修改后会影响到其它的视图 函数 存储过程 ,这是在修改之前可以查询一下。那些视图 函数 存储过程调用了这个表的这样在修改后就可以修改的视图 函数 存储过程,
  一般程序员用到的系统表,基本也就这几个, 其他的特殊的系统表(主要都在master 或者 tempdb )里面了 .
一个有用的例子:(查询表的创建者)
SELECT owner FROM DBA_ALL_TABLES WHERE table_name=upper(‘表名’);

Oracle数据库的系统参数都存储在数据库中,可以通过SQLPLUS,以用户SYSYTEM进行查询。

1.几个重要的表或者视图如下:
  v$controlfile:控制文件的信息;
  v$datafile:数据文件的信息;
  v$log:日志文件的信息;
  v$process:处理器的信息;
  v$session:会话信息;
  v$transaction:事务信息;
  v$resource:资源信息;
  v$sga:系统全局区的信息。

  类似于上面的视图或表还有很多,位于:$ORACLE_HOME/RDBMS/ADMIN/CATALOG.SQL文件中。

2.数据字典视图

 表和列

  DBA_TABLES、ALL_TABLES和USER_TABLES显示了有关数据库表的一般信息。
  DBA_TAB_COLUMNS、ALL_TAB_COLUMNS和USER_TAB_COLUMNS显示了每个数据库表的列的信息。
 注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS显示了模式对象的信息,包括表。

 完整性约束

  DBA_CONSTRAINTS、ALL_CONSTRAINTS和USER_CONSTRAINST显示有关约束的一般信息。
  DBA_CONS_COL

你可能感兴趣的:(Database)