Oracle 中常用数据字典大总结

原文出处:小宝马的爸爸 - 梦想的家园


前面呢,也断断续续的介绍了一些诸如 Sql*Plus 等等关于 Oracle 的基本的内容,

对于 Oracle 这样的大型数据库呢,自身的运行和维护也是个不得了的事情,

所以在 Oracle 中存在 n 多的数据字典,数据字典作为一种元数据呢,

在 Oracle 中的作用就是存放整个数据库实例的基本信息,实质上也就是一组表,

这些数据字典呢,很多都是归 SYS 用户所有的。

这一篇博文呢就是针对 Oracle 的数据字典做一个比较全面的介绍,

介绍方法,就是列出一些常用的数据字典了,

下面列出的这些数据字典,本人均在 Oracle 11g R1 上,

通过 Oracle Sql Developer 进行过测试的,全部通过。

其中很多的数据字典都必须以 system 或者是 sysdba 用户登录才能够使用的。

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
---数据库实例的基本信息
desc v$instance;
select * from v$instance;
 
--数据文件的基本信息
desc v$datafile;
select * from v$datafile;
desc dba_data_files;
select file_name,file_id,tablespace_name,bytes,blocks,
       status,online_status
from dba_data_files;
 
--临时文件的基本信息
desc dba_temp_files;
select file_name,file_id,tablespace_name,status,
       bytes/1024/1024 大小MB
from dba_temp_files;
 
--控制文件的基本信息
desc v$controlfile;
select name,status,is_recovery_dest_file,
       block_size,file_size_blks
from v$controlfile;
 
--日志文件的基本信息
desc v$logfile;
select group#,status,type,member,is_recovery_dest_file
from v$logfile;
 
--数据库的基本信息
desc v$database;
select * from v$database;
select dbid,name,created,resetlogs_time,log_mode,
       open_mode,checkpoint_change#,archive_change#,
       controlfile_created,controlfile_type,
       controlfile_sequence#,controlfile_change#,
       controlfile_time,protection_mode,database_role
from v$database;
 
--日志文件参数信息
show parameter log_archive_dest;
 
--访问参数文件
desc v$parameter;
select num,name,type,value,display_value,
       isdefault,isses_modifiable,
       issys_modifiable,isinstance_modifiable     
from v$parameter;
select * from v$parameter;
select name,value,description from v$parameter;
 
--后台进程信息
desc v$bgprocess;
select paddr,pserial#,name,description,error from v$bgprocess;
 
--DBA 用户的所有的表的基本信息
desc dba_tables;
desc dba_tab_columns;
select owner,table_name,column_name,data_type,data_length,
       global_stats,data_upgraded,histogram
from dba_tab_columns;
 
--DBA 用户的所有的视图的基本信息
desc dba_views;
select owner,view_name,read_only from dba_views;
 
--DBA 用户的所有的同义词的基本信息
desc dba_synonyms;
select owner,synonym_name,table_owner,
       table_name,db_link
from dba_synonyms;
 
--DBA 用户的所有的序列的信息
desc dba_sequences;
select sequence_owner,sequence_name,min_value,max_value,
       cycle_flag
from dba_sequences;
 
--DBA 用户的所有的约束的信息
desc dba_constraints;
select owner,constraint_name,constraint_type,
       table_name,status
from dba_constraints;
 
--DBA 用户的所有的索引的基本信息
desc dba_indexes;
select owner,index_name,index_type,table_owner,table_name,
       table_type,uniqueness,compression,logging,status
from dba_indexes;
 
--DBA 用户的所有的触发器的基本信息
desc dba_triggers;
select owner,trigger_name,trigger_type,
       table_owner,table_name,column_name
from dba_triggers;
 
--DBA 用户的所有的存储过程的基本信息
desc dba_source;
select owner,name,type,line,text from dba_source;
 
--DBA 用户的所有的段的基本信息
desc dba_segments;
select owner,segment_name,segment_type,
       tablespace_name,blocks,extents
from dba_segments;
 
--DBA 用户的所有的区的基本信息
desc dba_extents
select owner,segment_name,segment_type,
       tablespace_name,extent_id,file_id,blocks
from dba_extents;
 
--DBA 用户的所有的对象的基本信息
desc dba_objects;
select owner,object_name,subobject_name,
       object_id,data_object_id,object_type,
       created,status,namespace
from dba_objects;
 
--当前用户可以访问的所有的基表
desc cat;
select table_name from cat;
 
--当前用户可以访问的所有的基表,视图,同义词
desc system.tab;
select tname,tabtype,clusterid from system.tab;
 
--构成数据字典的所有的表信息
desc dict;
select table_name,comments from dict;
 
-- 查询关于表空间的一些基本的数据字典
desc dba_tablespaces;
select tablespace_name,block_size,status,
       logging,extent_management
from dba_tablespaces;     
desc dba_free_space;
select tablespace_name,file_id,block_id,
       bytes/1024/1024 大小MB,blocks,relative_fno
from dba_free_space;
 
--归档状态的一些基本信息
desc v$archived_log;
select name,dest_id,blocks,block_size,
       archived,status,backup_count
from v$archived_log;
 
--关于内存结构的一些信息
desc v$sga;
select name,value/1024/1024 大小MB from v$sga;
 
desc v$sgastat;
select pool,name,bytes from v$sgastat;
 
desc v$db_object_cache;
select owner,name,db_link,type,namespace,locks from v$db_object_cache;
 
desc v$sql;
select sql_text,sql_id,cpu_time from v$sql;

上面的呢就是 Oracle 中较常使用的数据字典了,

需要提一下的是,上面有很多都是以 “dba_”开头的数据字典,

比如有 dba_tables ,其实呢,这个是列出了数据库中所有的数据,

比如使用 dba_tables 就会列出数据库中所有的数据表(n 多),

但是您可以使用 user_tables 或者 all_tables 来代替 dba_tables,当然有一些是没有与之对应的,

这样呢,就只会列出当前登录用户允许查看的数据表了,

对于以“dba_”基本上都是有与之相对应的“user_”和“all_”,

其中“user_”对应的是记录当前登陆用户的对象,

而“all_”则是记录当前登陆用户的对象信息以及被授权访问的对象信息,

而“dba_”是包含数据库实例的所有对象信息!!!

posted @   流星<。)#)))≦  阅读(1835)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示