物理体系

体系结构图

  • 缩放

    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的更多相关文章

  1. 读书笔记系列01-《收获、不止Oracle》

    读书笔记系列01-<收获.不止Oracle> 最近计划将看过的Oracle书籍依次系统的总结下读书笔记. 这本书是我个人觉得写的最有趣的Oracle书籍,也是我接触Oracle后第一本完全 ...

  2. 【js】了解前端缓存,收获不止于此!

    了解前端缓存,收获不止于此! 这次我们来讲一下关于前端缓存的问题.感谢赵欢同学提供doc素材. 首先,开局我画了一张图,你会对文章有一个大局了解. 今天讲的是前端缓存. 前端缓存有3大种:如图,分为H ...

  3. 【面试虐菜】—— Oracle知识整理《收获,不止Oracle》

    普通堆表不足之处:     表更新有日志开销     表删除有瑕疵     表记录太大检索较慢     索引回表读开销很大     有序插入难有序读出   DELETE产生的undo最多,redo也最 ...

  4. 3000本IT书籍下载地址

    http://www.shouce.ren/post/d/id/112300    黑客攻防实战入门与提高.pdfhttp://www.shouce.ren/post/d/id/112299    黑 ...

  5. 本地管理表空间(LMT)与自动段空间管理(ASSM)概念

    创建表空间时,extent management local 定义本地管理表空间(LMT),segment space management auto 定义自动段空间管理(ASSM). extent ...

  6. SQL Tuning 基础概述05 - Oracle 索引类型及介绍

    一.B-Tree索引 三大特点:高度较低.存储列值.结构有序 1.1利用索引特性进行优化 外键上建立索引:不但可以提升查询效率,而且可以有效避免锁的竞争(外键所在表delete记录未提交,主键所在表会 ...

  7. Oracle 11gR2新建空表不分配Segment

    一.引言: 在看<收获,不止Oracle>的神奇,走进逻辑体系世界一章时,需要新建一张表查看Extents的情况,由于该书的环境是ORACLE10G的,因此新建空表以后立刻就分配Segme ...

  8. 【Oracle】逻辑结构(TableSpace→Segment→Extent→Block)

     一.逻辑体系结构图 二.逻辑结构图组成介绍 从上表能够看出,一个数据库是由多个表空间(tablespace)组成,一个表空间又由多个段(segment)组成,一个段又由多个区(extent)组成 ...

  9. Oracle优化技术

    1.基本原理 Oracle的日志:Oracle中为了提高硬盘写的效率,採用内存中数据缓冲区来保存数据,等到一定量或一定时间后才写到磁盘(DBWR). 这个时候假如断电之类的故障发生,数据缓冲区的数据将 ...

随机推荐

  1. VS Code 快捷键使用小技巧

    相关文档 官方文档(英文版):Documentation for Visual Studio Code 中文文档(未完成):GitHub - jeasonstudio/CN-VScode-Docs: ...

  2. arcgis javascript api 事件的监听及移除

    On Style Events 方式 var mapExtentChange = map.on("extent-change", changeHandler); function ...

  3. (9)Python循环结构

  4. 【转】联想笔记本进入u盘启动项操作方法详解

    win7之家小编最近可是对联想笔记本进入u盘启动项的方法很有兴趣啊,那么联想进入u盘启动到底要怎么操作呢?其实方法是有的,因为小编就是研究联想进入u盘启动出身的,下面小编就给大家带来史上最详细的联想笔 ...

  5. Z30云台PC控制问题

    https://developer.dji.com/cn/onboard-sdk/ 我们的需求: 完成PC程序控制Z30相机云台 关键问题: 前提:遥控器控制飞机+图像观看+调焦 1 PC能够接收到图 ...

  6. 把myeclipse的自动验证和自动构建都关掉

    关闭自动构建: project - -build  automatically  的勾去掉,如下图: 关闭自动验证:window - preferences-- myeclipse -- valida ...

  7. mysql各数据类型的存储范围

    文章转自 https://www.cnblogs.com/web21/p/6016120.html mysql整型bigint.int.mediumint.smallint 和 tinyint的语法介 ...

  8. leetcode 199. Binary Tree Right Side View 、leetcode 116. Populating Next Right Pointers in Each Node 、117. Populating Next Right Pointers in Each Node II

    leetcode 199. Binary Tree Right Side View 这个题实际上就是把每一行最右侧的树打印出来,所以实际上还是一个层次遍历. 依旧利用之前层次遍历的代码,每次大的循环存 ...

  9. android ActionBarSherlock使用说明

    源代码地址:https://github.com/JakeWharton/ActionBarSherlock 1.添加项目依赖包 2.修改AndroidManifest.xml中的主题(或者继承该主题 ...

  10. 授人以鱼不如授人以渔——和女儿学一起学成语

    女儿二年级了,前段时间背了<小学生必背古诗词75首>,采用几天一篇,然后滚动复习这种方式.磕磕绊绊也把一本古诗背了一遍,效果吗?是有的,但是不怎么明显,前面背,后面忘.当然这是规律,难免的 ...