Oracle常用数据字典表系统表或系统视图及查询SQL.docx
《Oracle常用数据字典表系统表或系统视图及查询SQL.docx》由会员分享,可在线阅读,更多相关《Oracle常用数据字典表系统表或系统视图及查询SQL.docx(9页珍藏版)》请在冰豆网上搜索。
Oracle常用数据字典表系统表或系统视图及查询SQL
Oracle常用数据字典表(系统表或系统视图)及查询SQL
2014年12月15日⁄数据库⁄共4187字⁄暂无评论⁄阅读861次
文章目录
∙数据字典分类
∙dba_开头
∙user_开头
∙v$开头
∙all_开头
∙session_开头
∙index_开头
∙伪表
∙数据字典常用SQL查询
数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。
比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息的视图等。
数据字典系统表,保存在system表空间中。
查询所有数据字典可用语句“select*fromdictionary;”。
数据字典分类
数据字典主要可分为四部分:
1)内部RDBMS表:
x$*,用于跟踪内部数据库信息,维持DB的正常运行。
是加密命名的,不允许sysdba以外的用户直接访问,显示授权不被允许。
2)数据字典表:
*$,如tab$,obj$,ts$等,用来存储表、索引、约束以及其他数据库结构的信息。
3)动态性能视图:
gv$*,v$*,记录了DB运行时信息和统计数据,大部分动态性能视图被实时更新以反映DB当前状态。
4)数据字典视图:
user_*、all_*、dba_*,在非Sys用户下,我们访问的都是同义词,而不是V$视图或GV视图。
数据库启动时,动态创建x$,在X$基础上创建GV$,在GV$基础上创建V$X$表-->GV$(视图)--->V$(视图)。
数据字典视图可分为静态数据字典视图和动态数据字典视图。
静态数据字典是指在用户访问数据字典时内容不会发生改变。
这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。
静态数据字典中的视图分为三类,它们分别由三个前缀够成:
user_*(该用户方案对象的信息)、all_*(该用户可以访问的所有对象的信息)、dba_*(全部数据库对象的信息)。
动态数据字典是Oracle包含的一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典。
这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。
Oracle中这些动态性能视图都是以v$开头的视图,比如v$access。
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归档日志分析的DMLDDL结果信息
v$logmnr_dictionary日志分析的字典文件信息
v$logmnr_logs日志分析的日志列表信息
v$tablespace表空间信息
v$tempfile临时文件信息
v$filestat数据文件的I/O统计信息
v$undostatUndo数据信息
v$rollname在线回滚段信息
v$session会话信息
v$transaction事务信息
v$rollstat回滚段统计信息
v$pwfile_users特权用户信息
v$sqlarea当前查询过的sql语句访问过的资源及相关的信息
v$sql与v$sqlarea基本相同的相关信息
v$sysstat数据库系统状态信息
all_开头
all_users数据库所有用户的信息
all_objects数据库所有的对象的信息
all_def_audit_opts所有默认的审计设置信息
all_tables所有的表对象信息
all_indexes所有的数据库对象索引的信息
session_开头
session_roles会话的角色信息
session_privs会话的权限信息
index_开头
index_stats索引的设置和存储信息
伪表
dual系统伪列表信息
数据字典常用SQL查询
1)查看表空间的名称及大小
selectt.tablespace_name,
round(sum(d.bytes/(1024*1024)),0)tbs_size
fromdba_tablespacest,
dba_data_filesd
wheret.tablespace_name=d.tablespace_name
groupbyt.tablespace_name;
若需要查看指定表空间的大小,则可以直接添加where条件指定,否则结果集是所有表空间。
2)查看表空间物理文件的名称及大小
selecttablespace_name,
file_id,
file_name,
round(bytes/(1024*1024),0)total_space
fromdba_data_files
orderbytablespace_name;
3)查看表空间剩余空间大小
selecttablespace_name,
round(sum(bytes)/1024/1024,2)ASfree_space,
count(*)ASextends,
sum(blocks)ASblocks
fromdba_free_space
groupbytablespace_name;
4)查看表空间使用率
SELECTtotal.tablespace_name,
Round(total.total,2) ASTotal_MB,
Round(total.total-free.free,2)ASUsed_MB,
Round((1-free.free/total.total)*100,2)
||'%' ASUsed_PCT
FROM (SELECTtablespace_name,
sum(bytes)/1024/1024ASfree
FROMdba_free_space
GROUPBYtablespace_name)free,
(SELECTtablespace_name,
sum(bytes)/1024/1024AStotal
FROMdba_data_files
GROUPBYtablespace_name)total
WHERE free.tablespace_name=total.tablespace_name;
5)查看控制文件
selectnamefromv$controlfile;
6)查看日志文件
selectmemberfromv$logfile;
7)查看消耗资源最多的SQL
SELECThash_value,
executions,
buffer_gets,
disk_reads,
parse_calls
FROMV$SQLAREA
WHEREbuffer_gets>10000000
ORdisk_reads>1000000
ORDERBYbuffer_gets+100*disk_readsDESC;
8)捕捉运行很久的SQL
selectusername,
sid,
opname,
round(sofar*100/totalwork,0)||'%'asprogress,
time_remaining,
sql_text
fromv$session_longops,
v$sql
wheretime_remaining<>0
andsql_address=address
andsql_hash_value=hash_value;
9)查看回滚段名称及大小
selectsegment_name,
tablespace_name,
r.status,
(initial_extent/1024)InitialExtent,
(next_extent/1024)NextExtent,
max_extents,
v.curextCurExtent
fromdba_rollback_segsr,
v$rollstatv
wherer.segment_id=v.usn(+)
orderbysegment_name;
10)查看还没提交的事务
select*fromv$locked_object;
select*fromv$transaction;
»声明:
本站文章源于个人经验总结或书籍、互联网转载,内容仅用于个人学习,请勿转载,否则后果自负!
»本文地址: