收获,不止oracle
物理体系
体系结构图
- 缩放
1.Oracle由实例和数据库组成,上半部分的直角方框为实例instance,下半部分的圆角方框为数据库Database。
2.实例是由一个开辟的共享内存区SGA(System Global Area)和一系列后台进程组成的,其中SGA被划分为共享池(share poor),数据缓冲区(db buffer)和日志缓冲区(log buffer)。后台进程包括PMON、SMON、LCKn、RECO、CKPT、DBWR、LGWR、ARCH等系列进程。
3.数据库是由数据文件、参数文件、日志文件、控制文件、归档日志文件等系列文件组成的。其中归档日志最终可能会被转移到新的存储介质中,用于备份恢复使用。
4.PGA(Program Global Area)区是一块开辟出来的内存区,和SGA最明显的差别在于,PGA不是共享内存,是私有不共享的。用户对数据库发起的无论查询还是更新的任何操作,都是在PGA先预处理,然后接下来才进入实例区域,由SGA和系列后台进程共同完成用户发起的请求。
PGA起到的具体作用,就是预处理。主要有三点:第一,保存用户的连接信息,
如绘画属性、绑定变量等;第二,保存用户权限等重要信息,当用户进程与数据
库建立会话时,系统会将这个用户的相关权限查询出来,然后保存在这个会话区内;第三,当发起的指令需要排序的时候,PGA排序区,如果在内存中可以放下排序的尺寸就在内存PGA区内完成,如果放不下,超出的部分就在临时表空间中完成排序,也就是在磁盘中完成排序。
5.图中三块区域,1区原型虚线框,2区直角方形虚线框,3区圆角方形虚线框。用户的请求发起经历的顺序一般是:1区-->2区-->3区;或者1区-->2区。
why:
体系结构原理初探
- 从普通查询SQL语句说起
1.selectobject_name from t where object_id =29;,当发出这条SQL指令后,该SQL语句从1区先做准备工作。PGA是仅供当前发起用户使用的私有内存空间,这里该连接只完成了两点,即用户连接信息的保存和权限的保存,只要该SESSION不断开连接,下次系统直接从PGA内存中存取,不用再去硬盘中读取数据。
此外该SQL还会立即匹配成一条唯一的HASH值,接下来该SQL指令进入2区进行处理,首先敲开SGA区的共享池的大门,如图所示。
共享池的大门打开了,该SQL先在房内查询是否什么地方有存储过这个SQL指令的身份证(就是那个唯一的HASH值),如果没有,那就要幸苦了,首先查询自己的语句语法是否正确、语义是否正确、是否有权限,在这些都没问题的情况下生成这句语句的身份证,唯一的HASH值就被存储下来了。接下来开始进行解析,解析什么呢?比如select object_name from t where object_id=29这个语句,在object_id列有索引的情况下,是索引读更高效,还是全表扫描更高效?Oracle都要做出选择。Oracle会把两种方式都估算一遍,选代价较小的。
现假设Oracle认定使用索引代价更低,接下来索引读的执行计划就立即被存储起来,并且和之前存储的该SQL的身份证对应在一起。接下来,SQL指令直奔数据缓存区,数据缓存区收到后立即要根据ID列上的索引从t表中查找object_id值为29的宝物,但是所要的东西找不到,只好传令到偏远的Database区的数据文件区去找(必须用索引读的方式),查到了,带回数据缓冲区复命,找不到也要复命,如图所示。
至此,一条最普通的SQL指令的经历就完了。- 执行普通查询SQL语句
create table t as select *from all_objects;建表
create index idx_object_id on t(object_id);建索引
set autotrace on 开始跟踪SQL执行计划和执行的统计信息
set timing on 是表示跟踪该语句执行完成的时间
最后,执行select object_name from t where object_id=29;- 先后执行两次,结果如下
- 原因
1、用户首次执行该SQL指令时,该指令从磁盘中获取用户连接信息和相关权限信息权限,并保存在PGA内存里。当用户再次执行该命令时,由于SESSION之前未被断开重连,连接信息和相关权限信息就可以在PGA内存中直接获取,避免了物理读。
2、首次执行该SQL指令结束后,SGA内存区里的共享池里已经保存了该SQL唯一指令HASH值,并保留了语法语义检查及执行计划等相关解析动作的劳动成果,当再次执行该SQL时,由于该SQL指令的HASH值和共享池里的保存的相匹配了,所以之前的硬解析动作无须再做,不尽调过了相关语法语义检查,对于该选取哪种执行计划也无须考虑,直接拿来主义就好了。
3、首次执行该SQL指令时,数据一般不在SGA的数据缓冲区里(除非被别的SQL读入内存了),只能从磁盘中获取,不可避免地产生了物理读,但是由于获取后会保存在数据缓冲区里,再次执行就直接从数据缓冲区里获取了,完全避免了物理读,
图像及画布
- 位图图像
位图图像由一个个像素点组合而成。不同的像素点以不同的颜色构成了完整的图像,所以位图图像可以表达出色彩丰富,过渡自然的图像效果。
位图的缺点表现在保存位图时需要记录每个像素点的颜色和位置,所以图像像素点越多(即分辨率越高),图像越清晰,文件所占空间越大,处理图像时运算速度相应较慢。- 矢量图形
矢量图形有一系列线条所构成,而这些线条的颜色、位置、曲率、粗细等属性都是通过许多复杂的数学公式来表达的。因此,与位图图像的处理正好相反,文件大小与输出打印尺寸没什么关系。
矢量图形另一个优点是所占空间较小,但图像不能够表现很丰富、细腻的细节。常见的矢量图形是企业LOGO,卡通人物和漫画。- 尺寸与分辨率
图像尺寸与分辨率之间存在很大关联,图像尺寸是指一幅图像的物理尺寸,也就是它在打印输出之后所显示的尺寸。图像分辨率市值图像中存储的信息量。这种分辨率有多种衡量方法,典型的是每英寸的像素数(dpi)来衡量。- 缩放图像
执行"编辑"|"变换"|"缩放"命令,快捷键:command+T。- 旋转图像
选择图层,并按快捷键:command+T弹出自由变换控制框。
光标置于控制框外围,当光标变成一个弯曲箭头时拖动鼠标,即可以以中心为基准旋转图像,Enter确认变换操作。
如需旋转15度,在拖动鼠标的同时按住Shift建。- 斜切图像
执行"编辑"|"变换"|"斜切"命令。- 水平,垂直翻转图像
执行"编辑"|"变换"|"水平翻转"命令。- 扭曲图像
执行"编辑"|"变换"|"扭曲"命令。- 透视图像
执行"编辑"|"变换"|"透视"命令。- 精确变换
按快捷键:command+T弹出自由变换控制框。
工具栏选项进行设置参数。
转载于:https://www.cnblogs.com/cccddd/p/7338543.html
收获,不止oracle相关推荐
- 不止 oracle,别出心裁 另有蹊径-与梁敬彬《收获,不止ORACLE》序
别出心裁 另有蹊径-与梁敬彬<收获,不止ORACLE>序 梁敬彬兄弟二人联手打造的新书<收获,不止ORACLE>即将出版,嘱我写一点东西,于是就有了以下一段文字,感谢他们与Or ...
- 收获不止oracle在线,重温《收获不止Oracle》
闲在家里,正好重新查缺补漏 第一章:方法论: 第二章:物理体系.回滚段与SCN对读一致性的意义.LGWR只能单进程.频率归档日志会引起数据写入效率下降.Oralce的启动顺序(读参数文件.控制文件.数 ...
- 一图讲解一条sql语句的一生——《收获,不止Oracle》的读书笔记01
其实也是<收获,不止Oracle>的读书笔记之一啦 微信读书可以看,数据库我觉得相通性还是比较大的,不管你用的哪种,都可以学学 难度的话,我才看到2.2 ,觉得本菜鸟还是可以看懂的. 说是 ...
- 五本《收获,不止Oracle》等你领取,Oracle DBA的福利
为了回馈我们默默关注的粉丝朋友们,我们特地联合电子工业出版社给大家免费赠送最新版<收获,不止Oracle>图书5本,具体参与方式见文末. 鼎力推荐 颠覆IT技术图书的传统写作方式,在妙趣横 ...
- 阿里P8整理出SQL笔记:收获不止SOL优化抓住SQL的本质
开头我先说: 有人就有江湖,有江湖就有IT系统,有IT系统就有数据库,有数据库就有SQL,SQL应用可一字概括:""广".加之其简单易学,SQL实现也可一字概括:&quo ...
- 【面试虐菜】—— Oracle知识整理《收获,不止Oracle》
普通堆表不足之处: 表更新有日志开销 表删除有瑕疵 表记录太大检索较慢 索引回表读开销很大 有序插入难有序读出 DELETE产生的undo最多,redo也最 ...
- 《收获,不止Oracle》表的设计之五朵金花
表设计主要强调什么场合该选择什么技术,没有最高级的技术,只有最适合的技术. 1.表的特性 普通堆表的不足之处 1.查看产生多少日志 [oracle@oracle-db-19c ~]$ sqlplus ...
- 《收获,不止Oracle》表的连接学以致用
6.2 三大类型 6.2.1 连接类型 嵌套循环 排序合并及散列连接 第一种方式就是数据库表连接中的嵌套循环连接(Nested Loops Join),而第二种方式就是表连接中的排序合并连接(Merg ...
- 阿里M8级铁子整理出SQL手册:收获不止SQL优化,抓住SQL的本质
有人就有江湖,有江湖就有IT系统,有IT系统就有数据库,有数据库就有SQL,SQL应用可一字概括: "广"".加之其简单易学,SOL实现也可一字概括:"乐&qu ...
- 阿里 M8 级大神整理出 SQL 手册:收获不止 SQL 优化,抓住 SQL 的本质
什么是 SQL? 结构化查询语言(Structured Query Language)简称 SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库 ...
最新文章
- (区间dp 或 记忆化搜素 )Brackets -- POJ -- 2955
- 名校计算机博士:拿到了五个工作机会,华为是最差的!
- Pycharm中Python3连接Oracle
- 【学习笔记】《数据挖掘:理论与算法》CH4神经网络
- c++中内敛函数_C/C++求职者必备 23 道面试题,一道试题一份信心
- html如何在画布上加层,在Canvas中嵌套Html
- linux内核驱动子系统,linux内核中的MFD子系统
- 经典测试用例--水杯测试
- 异贝,通过移动互联网技术,为中小微实体企业联盟、线上链接、线上线下自定义营销方案推送。案例7
- 扫描二维码登录的接口
- 周杰 清华大学计算机学院,周杰 -清华大学自动化系
- 《道德经》里的世界观(一种解读,仅供参考)
- 5G 时代,AI 如何破竹而出? | AI ProCon
- DP(动态规划)入门(一)
- 华为鸿蒙任正非专访,任正非接受专访:华为鸿蒙系统将比安卓速度快60%
- Android usb广播 ACTION_USB_DEVICE_ATTACHED流程源码分析
- 采用busybox的嵌入式Linux根文件系统的的制作方法
- 交大计算机技术非全日制,上海交通大学非全日制研究生的区别
- myeclipse中java.lang.OutOfMemoryError: PermGen space
- python怎么做游戏主播_做一名游戏主播是什么样的感受?