收获,不止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弹出自由变换控制框。
工具栏选项进行设置参数。
收获,不止oracle的更多相关文章
- 读书笔记系列01-《收获、不止Oracle》
读书笔记系列01-<收获.不止Oracle> 最近计划将看过的Oracle书籍依次系统的总结下读书笔记. 这本书是我个人觉得写的最有趣的Oracle书籍,也是我接触Oracle后第一本完全 ...
- 【js】了解前端缓存,收获不止于此!
了解前端缓存,收获不止于此! 这次我们来讲一下关于前端缓存的问题.感谢赵欢同学提供doc素材. 首先,开局我画了一张图,你会对文章有一个大局了解. 今天讲的是前端缓存. 前端缓存有3大种:如图,分为H ...
- 【面试虐菜】—— Oracle知识整理《收获,不止Oracle》
普通堆表不足之处: 表更新有日志开销 表删除有瑕疵 表记录太大检索较慢 索引回表读开销很大 有序插入难有序读出 DELETE产生的undo最多,redo也最 ...
- 3000本IT书籍下载地址
http://www.shouce.ren/post/d/id/112300 黑客攻防实战入门与提高.pdfhttp://www.shouce.ren/post/d/id/112299 黑 ...
- 本地管理表空间(LMT)与自动段空间管理(ASSM)概念
创建表空间时,extent management local 定义本地管理表空间(LMT),segment space management auto 定义自动段空间管理(ASSM). extent ...
- SQL Tuning 基础概述05 - Oracle 索引类型及介绍
一.B-Tree索引 三大特点:高度较低.存储列值.结构有序 1.1利用索引特性进行优化 外键上建立索引:不但可以提升查询效率,而且可以有效避免锁的竞争(外键所在表delete记录未提交,主键所在表会 ...
- Oracle 11gR2新建空表不分配Segment
一.引言: 在看<收获,不止Oracle>的神奇,走进逻辑体系世界一章时,需要新建一张表查看Extents的情况,由于该书的环境是ORACLE10G的,因此新建空表以后立刻就分配Segme ...
- 【Oracle】逻辑结构(TableSpace→Segment→Extent→Block)
一.逻辑体系结构图 二.逻辑结构图组成介绍 从上表能够看出,一个数据库是由多个表空间(tablespace)组成,一个表空间又由多个段(segment)组成,一个段又由多个区(extent)组成 ...
- Oracle优化技术
1.基本原理 Oracle的日志:Oracle中为了提高硬盘写的效率,採用内存中数据缓冲区来保存数据,等到一定量或一定时间后才写到磁盘(DBWR). 这个时候假如断电之类的故障发生,数据缓冲区的数据将 ...
随机推荐
- visual studio code前端插件及常用快捷键【转】
通用插件 HTML Snippets 超级实用且初级的 H5代码片段以及提示 HTML CSS Support 让 html 标签上写class 智能提示当前项目所支持的样式新版已经支持scss文件检 ...
- 查询css相关属性的网站
mozalla developer netwoke https://developer.mozilla.org/zh-CN/docs/Web/CSS/background 布局,div+css:htt ...
- C#从入门到精通视频教程(2009年最新)- 视频列表
http://www.jz97.net/index.php/playlist/view/182/page/2 C#从入门到精通视频教程(2009年最新)- 视频列表
- jQuery的收尾
一 后台管理布局增删改 二 常用事件 三 jQuery扩展 一 后台管理布局增删改(多种方法) <!DOCTYPE html> <!-- saved from url=(00 ...
- E - Matrix Power Series (矩阵数列)
然后,怎么来求这个前k项的和,我把式子推一下 当k为奇数的时候直接SK-1+AK 就又化为偶数的情况了.代码如下: #include<iostream> #include<cstr ...
- Arduino IDE for ESP8266 项目(3)创建AP+STA
官网API:http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/readme.html STA (客户端)手机连接路由器 S1 *简 ...
- YOLO2 (3) 快速训练自己的目标
1快速训练自己的目标 在 YOLO2 (2) 测试自己的数据 中记录了完整的训练自己数据的过程. 训练时目标只有一类 car. 如果已经执行过第一次训练,改过一次配置文件,之后仍然训练同样的目标还是只 ...
- 转载 精进不休 .NET 4.0 (5) - C# 4.0 新特性之并行运算(Parallel) https://www.cnblogs.com/webabcd/archive/2010/06/03/1750449.html
精进不休 .NET 4.0 (5) - C# 4.0 新特性之并行运算(Parallel) 介绍C# 4.0 的新特性之并行运算 Parallel.For - for 循环的并行运算 Parall ...
- 这款 WordPress商用插件 0day 漏洞满满,且已遭利用
Wordfence 安全研究员发布报告称,WordPress 商用插件 Total Donations 受多个 0day 漏洞的影响,且这些漏洞已遭利用. 这些严重的漏洞影响所有已知的 Total D ...
- battery for stm32
右边两个1N4148的压降都是0.7V,并且3.3-0.7=2.6V & 3-0.7=2.3V 可见在电源3.3V正常供电的情况下,电池处于休息状态,这就有效避免了电池的不必要消耗:





