Oracle学习笔记:数据字典

oracle数据字典

  说起字典,下面让我来打个比方。我们读书写字,靠的是什么?你会说:字!那我问你,你所用的字又是什么呢?!这时,你只可能把字典(新华字典、康熙字典、说文解字等等)里的说法拿出来解释了。再进一步,你能随随便便就自己写一本字典,把每个字重新定义一下,就去用吗?显然不可能,要是那样,世界早乱套了!有意思的是:即使是字典关于每个字的解释还是用其他的字来解释的,这样循环解释下去.....????????这其实只是表现形式的一致,内容上绝不会死循环的,那就是铁定规定一些最最基础的语义不可再分的字为基础字!其他的不过是多种说法写法,不断被解释的新字而已!

  就是这样:数据库里的数据字典就是就是解释数据库对象的对象,所以数据字典也叫元数据-metadata。他们不可以被用户增、删、改,只能查看使用。数据字典也有一些不可再分的字典基础表,其他的主要是视图、视图的视图、同义词而已,而我们能用的只能是这些视图、视图的视图、同义词。你问了“oracle为什么不让咱看基础表啊”?让你看,你看的懂吗?话又说回来,真让你看懂了,oracle不早关门了?! 这就是历史、兼容性、效率、管理、安全、习惯等问题了。

  为什么oracle提供了这么多的数据字典啊?你说是如果你盖房子了,是用现成的砖、水泥、钢筋等等建筑材料好啊,还是先从一个老房子上拆零件好啊?但有时候有集成度较高的半成品也是很好的,可这个东西是没有标准去把握的,只好仁者见仁、智者见智了。oracle也是不断顺应民意不断改变的!



oracle的数据字典主要从两个角度去划分的

  1. static 和 dynamic 指的是字典信息内容是否实时更新,是否可以阶段重现或者是否可控。static主要适用于用户模式对象,在数据库open状态下使用;dynamic主要是数据库实例提供的内存结构信息,他们甚至没有database中存储的表结构,完全是oracle实例提供的内存表,而且可用的字典表在实例启动的不同阶段都是不同的。由此也引出了两者的可访问的方式有些不同:dynamic字典只能使用简单的 select where,要使用其他的东西,必须先转储位实体表;而 static 则没有这些限制!
  2. privileges :指权限、安全管理角度。 其中,static 的 dba_、all_、user_ 指的是从用户ID安全角度定义了内容访问许可范围,由此引出了大量的数据字典视图、同义词;类似的dynamic的v_$、v$、gv_$、gv$从实例ID安全角度定义了内容访问许可范围,也引出了大量的数据字典视图、同义词!

 

oracle数据字典的衍生关系

oracle程序fixed 表-->fixed 视图:如v$instance  ----该层的fixed 表是对用户访问关闭的

oracle:  x$表-->gv$视图-->v$视图  --该层是对用户访问关闭的

          |    |

        gv_$视图  v_$视图

          |    |  

        gv$同义词 v$同义词

oracle:  *$基础表-->dba_*视图-->all_*视图-->user视图  ----该层的表是对用户访问关闭的

    all_*视图、user视图实际上都是从*$基础表定义而来的,逻辑范围上如上

 

在进行数据访问时,Oracle 访问 VIEW优先,然后是同义词。


 

你绝对用的到的基础数据字典

  1. dictionary 【dict】  --列出所有的数据字典,oracle10g里有 1378 个!
  2. dict_columns  --列出所有的数据字典表列
  3. v$fixed_table  --列出所有的dynamic 表、视图,此处的 fixed 应理解为oracle内置的、固有的
  4. v$fixed_view_definition  --列出所有dynamic视图的原始定义,此处的 fixed 应理解为oracle内置的、固有的
  5. v$process  --oracle进程信息,addr
  6. v$session  --oracle的会话信息,paddr对应v$process的addr,process指client的os的processid,*_sql_*,row_wait_row#,event等待事件描述,sql_trace
  7. v$sql  --oracle缓存的sql
  8. v$sgainfo、v$sgastat、v$pgastat  --sga的固定和动态组成情况
  9. v$sysem_parameter  --oracle系统所有的初始化参数,不包含隐藏参数
  10. v$sysem_event  --oracle实例的系统等等事件统计
  11. v$thread  --当前lgwr线程信息,从中可以获得很多redo相关的信息。sequence#-1
  12. v$version、v$option  --oracle的版本、组件情况
  13. v$open_cursor  --oracle打开的所有cursor情况
  14. v$object_dependency  --oracle系统运行时所有object的依赖情况
  15. v$bgprocess  --oracle所有可能的后台进程,已经是否运行等情况
  16. v$datafile、v$datafile_header  --oracle的datafile信息
  17. v$log、v$logfile、v$log_history  --oracle的online redo 的信息及归档历史信息




其他常见的oracle数据字典(不断收集整理中......)

  1. v$session_event、v$session_wait、v$session_wait_class、v$session_wait_history  --当前会话等待事件、汇总、历史统计
  2. v$sql、v$sql_plan、v$sql_trace、v$sql_text、v$sql_cursor、v$sqlstats、v$sqlarea  --sql缓存中的sql文本
  3. v$process_memory  --oracle进程的内存使用详细信息
  4. v$system_wait_class  --oracle系统等待事件汇总
  5. v$database  
  6. v$instance
  7. v$tablespace  --从控制文件中获得的关于表空间的基本信息
  8. v$thread  --lgwr线程信息,从中可以获得很多redo相关的信息

 

 

转载于:https://www.cnblogs.com/jinzhenshui/archive/2009/02/19/1394216.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux分区转换gpt命令,Linux中磁盘如何转换GPT格式

Fdisk命令虽然很交互,操作也方便,但是对于大于2T的磁盘无法操作,假如我们想用大于2T的磁盘怎么办?可以把磁盘转化为GPT格式。GPT格式的磁盘相当于原来MBR磁盘中原来保留4个partition table的416个字节只留第一个16个字节,类似于扩…

JAVA格式化当前日期或者取年月日

Date d new Date(); System.out.println(d); SimpleDateFormat sdf new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateNowStr sdf.format(d); System.out.println("格式化后的日期:" dateNowStr); 转载于:https://www.cnblo…

DHL出台货运新方案

DHL出台货运新方案(来自:北京国际快递) 这是中国货运行业内首次由货运公司发起的关于货运安全方面的战略合作项目,货运公司与机场货运站、航空公司首次共同协作致力于货物的安全保障。 国际快递巨头DHL日前宣布,旗下的货运部门DHL全球货运物流…

linux 帐户安全管理员权限,Linux - 安全 - 账户管理

Linux 账户管理用户用户文件 /etc/passwd该文件所有用户可读,每一行代表一个用户,包含7个字段,分别用:隔开。# 查看文件内容cat /etc/passwd;内容:root:x:0:0:root:/root:/bin/bashwuhd:x:1002:1002::/home/wuhd:/bin/bash说明&am…

【转】sql表及字段命名规范

1.数据库表命名规范: (1)表名前应该加上前缀,表的前缀一个用系统或模块的英文名称缩写,前缀全部大写或首字母大写,表名中包含的单词首字母大写。 (2)数据库表名应该有意义,并且易于理解,最好使用可以表达功能的英文单词…

“卧槽”是怎么回事

“卧槽”是怎么回事2009-02-23 10版:新论 主持人:百科小子 提问者:丁莹(上海南京西路) 解答者:段凡(华东理工大学社会与公共管理学院博士) 问:日前有一项调查显示&am…

ubuntu查看硬件信息

ubuntu查看硬件信息 1,外部探针probe sudo apt-get install hwinfo 执行hwinfo获取系统信息 --short 2,系统命令dmidecode(硬件信息) or dmesg(主要是开机信息) 基于命令ubuntu 系统硬件信息查看 主板信息,序列号,产品名 dmesg | grep -i cpu dmidecode -t processor 硬盘(分区…

linux win10虚拟内存,高手解惑win10系统电脑虚拟内存不足的还原技巧

我们在使用电脑的时候,难免会遇到win10系统电脑虚拟内存不足的情况,根据小编的调查并不是所有的朋友都知道win10系统电脑虚拟内存不足的问题怎么解决,针对win10系统电脑虚拟内存不足的问题,我给大家整理总结了详细的解决步骤&…

第三章总结

第三章总结 栈与队列都是特殊的限制型的线性表,通常没有查询这个操作 栈的特点就是先进后出,只可以在栈顶进行插入删除,顺序栈定义指向栈顶与栈底的指针(方便判断栈的情况)也可以只定义一个栈顶指针top然后通过top-1来…

USB的八个问题和答案(转)

http://www.amobbs.com/thread-901041-1-1.html 问题一:USB的传输线结构是如何的呢? 答案一:一条USB的传输线分别由地线、电源线、D、D-四条线构成,D和D-是差分输入线,它使用的是3.3V的电压(注意哦&#xf…

linux python3运行,将Python3安装到Linux上并运行

将Python3安装到Linux上并运行使用win10开发一个很好的python项目并把它部署到Linux中,有一个问题需要解决:如何在Linux中运行py文件?以LunixCentOS7.x平台为例,CentOS系统已经有了python2.x的自带版本,可以通过命令查…

初学者持续自我提升指南

这是一位长期关注自我提升方面的博主,在medium.com上发现的。 初学者持续自我提升指南 最佳自我改善文章 自我改善几乎总是从自我意识和改变习惯的能力开始。如果你认真改变自己的生活并改善自己,那么你应该从这两篇文章开始: 如何停止对自己…

ntp服务器池列表

ntp服务器池列表 CentOS: 0.centos.pool.ntp.org 1.centos.pool.ntp.org 2.centos.pool.ntp.org 国内可用的 ntp.fudan.edu.cn 复旦 210.72.145.44 国家守势中心服务器 亚洲地区的ntp服务器 Bangladesh — bd.pool.ntp.org (0) China — cn.pool.ntp.org (3) Hong K…

LINQ to SQL学习的几个问题

问题一&#xff1a; 什么情况下我们使用自动属性功能&#xff0c;生成自动属性时内部没有明确的私有变量那么我们如何访问这个私有变量呢&#xff1f; 如果不能那我们的封装还有什么存在的意义&#xff1f; Code1 /**//// <summary> 2 /// net 2.0中使用的方法来定义…

linux 运行pfx文件,Linux下pfx证书导出key和crt

Linux下.pfx证书导出.key和.crt1.确定openssl路径&#xff1a;openssl version -aOpenSSL 1.0.1e-fips 11 Feb 2013built on: Mon Jun 29 12:45:07 UTC 2015platform: linux-x86_64options: bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)comp…

C# foreach遇到async和await

一个简单的列子&#xff0c;需要把一个集合的数据添加到数据库中。 我先这样写了&#xff0c;然后报错了 public async Task<IHttpActionResult> Test([FromUri]string name ""){List<string> strList new List<string>() { "测试", &…

BZOJ2584 : [Wc2012]memory

xy方向分开考虑 用扫描线处理出拓扑序&#xff0c;第二问直接回答拓扑序&#xff0c; 第一问&#xff1a; 将操作倒过来&#xff0c;变成加入线段&#xff0c;用线段树维护区间拓扑序的最值 #include<cstdio> #include<algorithm> #include<set> #define N 1…

MVC RC2中关于HtmlHelper给DropDownList设置初始选中值的问题

Asp.Net MVC RC2中Helper提供的DropDownList好象并不太好用&#xff0c;特别想给下拉框设置初始选中值的时候&#xff08;可能我还没找到正确的方法&#xff09; 小试了一下&#xff0c;有二个简单的解决办法:1.回到最原始的asp的办法&#xff0c;直接在view的循环中判断&#…

linux内存管理简介,Linux操作系统的内存管理特性简介 (3)

输出的第一行(Mem:)显示出物理内存的使用情况。总和(total)列中并没有显示出被内核使用的内存&#xff0c;它通常将近一兆字节。已用列(used column)显示出已用内存的总和(第二行没有把缓冲算进来)。空闲列(free column)显示了所有未被使用的空闲内存。共享列(shared column)显…

2019.03.29 NOIP训练 友好国度(点分治+容斥)

传送门 思路&#xff1a; 直接上点分治容斥计算每个因数对应的贡献即可。 代码&#xff1a; #include<bits/stdc.h> #define ri register int using namespace std; const int rlen1<<18|1; inline char gc(){static char buf[rlen],*ib,*ob;(ibob)&&(ob(i…