小菜鸟之oracle数据字典

oracle数据字典

一、数据字典
  数据字典是oracle存放有关数据库信息的地方,几乎所有的系统信息和对象信息都可在数据字典中进行查询。数据字典是oracle数据库系统的信息核心,它是一组提供有关数据库信息的表和视图的集合,这些表和视图是只读的。它是随着数据库的建立而建立的,当数据库执行特定动作时数据字典也会自动更新。数据一览与数据字典来记录、校验和管理正在进行的操作。
oracle中、sys用户是数据字典的拥有者,数据字典保证在所有数据库的系统表空间system内,任何用户都无权更改sys模式下的模式对象或数据字典中的行。也就是说数据字典只能查询,不能手动进行修改。

  数据字典用途
oracle通过存取数据字典从而比较方便地获取有关用户某事对象和存储结构等信息。当系统执行了DDL语句后,oracle会及时修改数据字典。任何用户只能以读的形式使用数据字典获取数据库信息。

数据字典存储的信息

· 数据用户的名称

· 为用户授予的权限和角色

· 模式对象的名称,如 tables,views,indexex,procedures,functions,packages,triggers等。

· 完整性约束的具体信息;

· 每个字段的默认值;

· 数据库空间的使用情况;

· 审计功能,在Oracle_Home\productdb_l\rdbms\admin目录下的文件cataudit.sql就是用于为审计创建数据字典视图的脚步。

· 对象与用户的严格管理(适用于高度机密管理);

· 其他一般数据库信息。

  三种前缀的数据字典视图
user_ :任何用户都可以读取的视图,每个用户读取的都不一样,它只提供当前用户某事下的对象信息。如查询当前模式下的所有对象select object_name, object_type from user_objects;

all_ :所有用户都可读取的用户视图,它提供与用户有关的对象信息。如查询当前用户可访问的所有对象
select owner, object_name, object_type from all_objects;
dba_:提供了只有数据库管理员才可读取的视图,包括所有用户视图中的对象信息。如select owner, object_name, object_type from sys.dba_objects;

二、数据字典相关查询

1、 查询用户

select username from dba_users; -- 只有管理员权限的用户才能查询

select username from all_users; -- 当前或任何用户都可使用

-- 查看当前用户的默认表空间select username, default_tablespace from user_users;

--当前用户角色select * from user_role_privs;

-- 当前用户的系统权限和表级权限select * from user_sys_privs;

select * from user_tab_privs;

2、查询 表空间 (拥有DBA权限的用户才能查询)

select * from dba_data_files;select * from 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=‘USERS‘; -- 表空间对于的数据文件

select * from dba_segments where tablespace_name=‘USERS‘;--查询用户模式对象所使用过的正在使用空间大小select name, type, source_size, code_size from user_object_size;

3、查询数据库对象(拥有DBA权限的用户才能查询)

select * from dba_objects

select * from dba_objects where object_type = upper(‘package body‘);

select * from dba_objects where OBJECT_TYPE=‘TABLE‘ and OWNER=‘SCOTT‘

  可根据拥有者查询下列对象类型(object_type)

cluster    databaselink
function   index
library   package
package body   procedure
sequence   synonym
table   trigger
type   undefined
view
4、查询表

--表使用的extent的信息。segment_type=‘ROLLBACK‘

select * from dba_tables;select extent_id, bytes from dba_extents where segment_name=‘CUSTOMERS‘ and segment_type=‘TABLE‘ order by extent_id;

--    查看回滚段的空间分配信息列信息 SELECT * FROM user_tab_columns;select distinct table_name from user_tab_columns where column_name=‘ID‘;

-- 查看当前用户下所有的表select * from user_tables;--查看名称包含log字符的表select object_name, object_id from user_objects where instr(object_name, ‘LOG‘) > 0;-- 查看某表的创建时间select object_name, created from user_objects where object_name = upper(‘&table_name‘);-- 查看某表的大小select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name = upper(‘&table_name‘);-- 查看放在oracle的内存的表select table_name, cache from user_tables where instr(cache, ‘Y‘) > 0;

5、查询索引

select * from dba_indexes; -- 索引,包括主键索引

select * from all_indexes;select * from dba_ind_columns; -- 索引列

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 = ‘PERSON‘; --连接使用

-- 查看索引个数和类别select index_name, index_type, table_name from user_indexes order by table_name;-- 查看索引被索引的字段select * from user_ind_columns where index_name=upper(‘&index_name‘);-- 查看索引的大小select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name = upper(‘&index_name‘);

6、查询序列

select * from dba_sequences;select * from all_sequences;

查看序列号,last_number是当前值select * from user_sequences;

7、查询视图

select * from dba_views;select * from all_views;

可用目录desc all_views;来查看视图结构
其中,Text列可用于查询视图生产的脚本。

--查询当前用户视图的名称select view_name from user_views;

--查询创建视图的select语句select view_name, text_length from user_views;set long 2000;

--可以根据视图的text_length 值设定set long的大小select text from user_views where view_name = upper(‘&view_name‘);

8、查询聚簇

select * from dba_clusters;

9、查询快照

select * from dba_snapshots;

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

10、查询同义词

select * from dba_synonyms where table_owner=‘SCOTT‘;select * from ALL_synonyms where table_owner=‘SYSTEM‘;

  如果用户表可以被访问,那么同义词也可以被访问,用户表不能被访问,则同义词也不能被访问。

11、查询数据库链

select * from dba_db_links;

12、查询触发器(12)

select * from dba_triggers;

存储过程,函数从dba_objects查找

查询文本select text from user_source where name = ‘PRO_PERSON_FINDBYID‘;

oracle总是将存储过程,函数放在system表空间。

13、查看函数和过程的状态

select object_name, status from user_objects where object_type=‘FUNCTION‘;select object_name, status from user_objects where object_type=‘PROCEDURE‘;

--查看源代码select * from all_source where owner=‘WUXX‘ and name=upper(‘&plsql_name‘);

14、查询约束

约束是和表关联的,可以在create table或alter table table_name add/drop/modify 来建立、修改、删除约束。
可以临时禁止约束,如:
alter table book_example
disable constraint book_example_l;
数据完整性约束

select constraint_name, constraint_type, table_name from dba_constraints;

15、查询回滚段
在所有的修改结果存入磁盘前,回滚段中保持恢复该事务所需的全部信息,必须以数据库发送的事务来相应确定其大小。(DML语句才可回滚,create, drop, truncate等DDL不能回滚)
回滚段数量=并发事务/4,但不能超过50个;是每个回滚段大小足够处理一个完整的事物;

create rollback segment r05 tablespace rbs;create rollback segment rbs_cvt tablespace rbs storage(initial 1M next 500k);

16、查询作业

select job, broken, next_date, interval, what from user_jobs;select job, broken, next_date, interval, what from dba_jobs;

--正在运行的作业select * from dba_jobs_running;

使用包exec dbms_job.sumit(:v_num, ‘a;‘, sysdate, ‘sysdate +(10/(24*60*60))‘);加入作业。间隔10秒

使用包exec dbms_job.sumit(:v_num, ‘a;‘, sysdate, ‘sysdate +(10/(24*60))‘);加入作业。间隔11分
使用表exec dbms_job.remove(21)删除21号作业。

其他信息查询
查询优化模式对象使用过的或正在使用的空间大小

select name, type, source_size, code_size from user_object_size;

查询字段的默认值

select table_name, column_name, data_default, low_value, hight_value from dba_tab_columns;

原文地址:https://www.cnblogs.com/czg-0705/p/11391983.html

时间: 2024-10-06 20:08:45

小菜鸟之oracle数据字典的相关文章

小菜鸟之Oracle数据库之事务

Oracle数据库之事务 1. 什么是事务 在数据库中事务是工作的逻辑单元,一个事务是由一个或多个完成一组的相关行为的SQL语句组成,通过事务机制确保这一组SQL语句所作的操作要么都成功执行,完成整个工作单元操作,要么一个也不执行. 如:网上转帐就是典型的要用事务来处理,用以保证数据的一致性. 2. 事务特性 SQL92标准定义了数据库事务的四个特点: · 原子性(Atomicity):一个事务里面所有包含的SQL语句是一个执行整体,不可分割,要么都做,要么都不做. · 一致性(Consiste

Oracle数据字典和动态性能视图

Oracle数据字典和动态性能视图,布布扣,bubuko.com

Oracle数据字典

数据字典 一.什么是数据字典 数据字典是 Oracle存储所有实例信息的表和视图的集合.Oracle进程会在 SYS模式中 维护这些表和视图,也就是说数据字典的所有者为 sys用户,数据存放在 SYSTEM表空间中. 数据字典描述了实际数据是如何组织的,如一个表的创建者信息.创建时间信息.所属表空 间信息.用户访问权限信息等.对它们可以像处理其他数据库表或视图一样进行查询,但不 能进行任何修改. Oracle数据库字典通常是在创建和安装数据库时被创建的,Oracle数据字典是 Oracle 数据

小菜鸟mysql优化解决方案

根据小菜鸟的个人习惯,自己的编写的一套MYSQL优化方案,感觉还是有点儿菜,望大家谅解,不足之处,请大神们互动! #mysql优化解决方案 #公共参数默认值: max_connections = 151 #同事处理多大连接数,推荐设置最大连接数是上限连接数的80%左右 sort_buffer_size = 2M #查询排序时缓冲区大小,只对order by和group by起作用,可增大此值为16M open_files_limit = 1024 #打开文件数限制,如果show global s

【菜鸟学php】小菜鸟由帝国备份王在Wamp环境下打开500错误浅谈PHP程序员

===================问题情况描述=================== 小弟一直在玩discuz论坛开源程序,这个论坛程序经常涉及到论坛搬家的问题. 今天我在本地Wamp环境下,用开源软件帝国备份王2010进行数据库备份数据,结果打开发现报错500! 这真是坑爹了,回想下以前自己使用这个开源程序进行备份也不下于十几次了,大部分都正常成功, 但也不乏出现这种情况的,小弟之前一般遇到这种问题, 都是直接忽略,换其他办法来进行备份,但是用惯了帝国备份王,换其他的方法备份数据,总感觉难

小菜鸟的单向链表反转

关于单向链表的反转想必大家都很熟了,以前一直用递归的方法写的,还是挺好写的,但是后来又在网上瞄了一眼非递归方法的实现,当时以为那个代码是正确的,也没验证,后来就不了了之. 昨天下午开始写这个代码,最后老发现出问题,今天早上起来理了一遍,终于发现症结所在. 举个例子吧: 1->2->3->4->5->6       我反转后的结果应该是: 6->5->4->3->2->1 我的算法是这样的(语死早,大家不要笑,我就用过程图表达吧): 1->2

ORACLE 数据字典

数据字典是ORACLE数据库重要的组成部分,是元数据(matedata)的存储地点,ORACLE RDBMS使用数据库管理对象信息和安全信息.数据库管理员可以通过数据字典来得到数据库的信息. 数据字典是由 内部RDBMS(X$)表,数据字典表,数据字典视图,动态性能表(v$)组成. 1.内部表 该部分是ORACLE核心组成部分.用于跟踪数据库内部信息,维护数据库的正常运行.x$是加密命名的,是ORACLE 技术机密.通过X$建立大量视图,提供用户查询管理数据库之用,是ORACLE 数据库 运行的

PowerDesigner生成Oracle数据字典

PowerDesigner版本信息 1.File-->NewModel... 2.选择模型 New Model Model types-->Physical Data Model --> Physical Diagram-->OK 4.配置数据源连接 Database-->Configure Connections... 5.新增数据库Add Data Source -->用户数据源(只用于当前机器)(U) 下一步 6.创建新的数据源 选择Microsoft ODBC

oracle数据字典视图

数据字典和数据字典视图 数据字典是由oracle服务器创建和维护的一组系统表.Sys用户拥有所有的数据字典表.Oracle服务器以最快的方式操作数据字典的基表,所以,数据字典的基表中所存的数据就像天书一样,人类看不懂.所以我们不访问这些基表,要了解数据的一些信息,绝大多数用户都会访问数据字典试图来得到数据库的相关信息.而且数据字典视图把数据字典基表的信息转换成了人们较为容易理解的形式.包括用户名,用户的权限,对象名,约束,审计. 数据字典 数据字典视图分为三大类:他们用前缀来区别,其前缀分别为U