数据字典

来源:互联网 发布:unity3d 鼠标点击移动 编辑:程序博客网 时间:2024/04/28 16:07

数据字典

数据字典是很重要的数据库对象之一。它在数据库创建时由数据库服务器创建,记录了数据库创建的信息,各对象的信息。数据字典包括:

  • 所有的模式(用户)对象定义,这些对象包括表、视图,索引,族,同义词,序列号,存储过程,函数触发器等。
  • 数据库的逻辑结构和物理结构,如数据文件和重做日志文件的信息等。
  • 所有模式对象被匹配多少空间,以及当前使用空间。
  • 默认列的值。
  • 对象完整性的约束信息。
  • 用户信息。
  • 用户或角色的特权信息。
  • 审计信息,如哪个用户具有访问或者修改某模式对象的权利。

数据字典视图由Oracle数据库服务器自动创建并维护,用数据字典场合:

  • Oracle数据库服务器用来寻找用户信息、模式信息和存储结构。
  • 当使用DDL语句时,会触发Oracle服务器修改数据字典。
  • 普通用户或者DBA用户使用数据字典获得数据库信息,如数据文件存储位置、数据库实例名、参数文件中的参数值、控制文件信息等。

数据字典视图分3类,这些视图都是静态的,数据字典名和数据字典的解释如下:

DBA_***:该视图包含数据库中整个对象的信息,以DBA为前缀的视图只能管理员查询,不要再这些视图上创建同义词。

ALL_***:该视图包含某个用户对象所能看到的全部数据库信息,包括当前用户所拥有的模式对象和用户可以访问的其他公共对象,还有通过授权或授予角色可访问的模式对象。

USER_***:该视图包含当前用户访问的数据库对象的信息,它反映了数据库中某个用户的全部情况,该类视图隐含了owner信息,其全部内容为以ALL为前缀的视图的子集。

一般DBA经常查询:

1. 查询系统所有对象


2. 查看系统所有表
select owner, table_name, tablespace_name from dba_tables

3. 查看所有用户的表
select owner, table_name, tablespace_name from all_tables

4. 查看当前用户表
select table_name, tablespace_name from user_tables

5. 查看用户表索引
select t.*,i.index_type from user_ind_columns t, user_indexes i where
t.index_name = i.index_name and t.table_name = i.table_name
and t.table_name = 'STUDENT' --要查询的表
6. 查看主键
select cu.* from user_cons_columns cu, user_constraints au
where cu.constraint_name = au.constraint_name
and au.constraint_type = upper('p') and au.table_name = 要查询的表
7. 查看唯一性约束
select column_name from user_cons_columns cu, user_constraints au
where cu.constraint_name = au.constraint_name and au.constraint_type =  upper('u')
and au.table_name = 要查询的表
8. 查看外键
select * from user_constraints c where c.constraint_type = 'r' and c.table_name = 要查询的表
select * from user_cons_columns cl where cl.constraint_name = 外键名称
select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名
9. 查看表的列属性
select t.*,c.comments
from user_tab_columns t, user_col_comments c
where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name =  'STUDENT' 要查询的表
10. 查看所有表空间
select tablespace_name from dba_data_files group by tablespace_name;

    查看表空间使用率
select upper(f.tablespace_name) "表空间名",
       d.tot_groot_mb "表空间大小(M)",
       d.tot_groot_mb - f.free_bytes "已使用空间(M)",
       to_char(round((d.tot_groot_mb - f.free_bytes) / d.tot_groot_mb * 100,2),'990.99') "使用比",
       f.free_bytes "空闲空间(M)",
       f.max_bytes "最大块(M)"
  from (select tablespace_name,
               round(sum(bytes) / (1024 * 1024), 2) free_bytes,
               round(max(bytes) / (1024 * 1024), 2) max_bytes
          from sys.dba_free_space
         group by tablespace_name) f,
       (select dd.tablespace_name,
               round(sum(bytes) / (1024 * 1024), 2) tot_groot_mb
          from sys.dba_data_files dd
         group by dd.tablespace_name) d
 where d.tablespace_name = f.tablespace_name;

DBA常用命令:

1. 查看oracle最大连接数
sql>show parameter processes    #最大连接数

2. 修改最大连接数
sql>alter system set processes=value scope=spfile
–重启数据库
sql>shutdown force
sql>start force

3. 查看当前连接数
sql>select * from v$session where username is not null

4. 查看不同用户的连接数
sql>select username,count(username) from v$session where username is not null group by username #查看指定用户的连接数

5. 查看活动的连接数
sql>select count(*) from v$session where status='active' #查看并发连接数

6. 查看指定程序的连接数
sql>select count(*) from v$session where program='jdbc thin client' #查看jdbc连接oracle的数目

7. 查看数据库安装实例(dba权限)
sql>select * from v$instance

8. 查看运行实例名
sql>show parameter instance_name

9. 查看数据库名
sql>show parameter db_name

10. 查看数据库域名
sql>show parameter db_domain

11. 查看数据库服务名
sql>show parameter service_names

12. 查看全局数据库名
sql>show parameter global 

下面是Oracle维护的动态性能视图:

它只存在于正在运行数据库中,是一组虚表,只有管理员可以查询,任何用户都无法修改和删除这些动态性能视图,亦被称作固定视图

SYS拥有所有的动态性能视图,这些视图以v$为前缀,v$fixed_table包含了当前所有动态性能视图。

DBA维护数据看经常用的视图:

查询和日志相关的信息

select * from v$fixed_table where name like 'V$LOG%';

查看日志组状态信息

select group#,members,archived,status from v$log;

查看重做日志文件信息

select * from v$logfile;

查询正在使用的重做日志文件的信息

select l.GROUP#,l.ARCHIVED,l.STATUS,lf.TYPE,lf.MEMBER 
from v$log l,v$logfile lf
where l.GROUP#=lf.GROUP#
and l.STATUS='CURRENT';

v$instance查看实例信息

select instance_name,host_name,version,startup_time,logins from v$instance;

查看当前数据库信息

select name,created,log_mode from v$database;

动态性能视图很好地反映了当前数据库运行状态信息,对于数据库性能调优和判断系统瓶颈提供信息支持,通过动态性能视图还可以查看控制文件信息,数据文件信息和表空间信息等。

0 0
原创粉丝点击