角色定位
给自己定位,合理地在自己的岗位上分配时间与精力
攻取知识途径
- 官方文档, CONCEPT需要反复阅读
- 导师培训
- 相关书籍
- 搜索总结
数据库和Excel的本质区别是,数据库具有事务的概念。
数据库应该根据人群的不同可分为:数据库开发、数据库管理
数据库优化、数据库设计。
- 开发:数据库增删改查;pl/sql实现各种逻辑
- 管理:完成数据库安装、部署、参数调试、备份和恢复、数据迁移等相关工作
Oracle 体系结构图

- Oracle由实例instance和数据库Dababase组成
- 实例由一个开辟的内存区域SGA加一系后台进行组成,其中SGA最主要是被划分为共享池 (Share pool)、 数据缓冲区(db cache)和日志缓冲区(log buffer)三类。后台进程包括PMON、SMON、LCKn、CKPT、DBWR、LGWR、ARCH等系列进程。
- 数据库是由数据文件、参数文件、日志文件、控制文件、归档日志等系列文件组成,归档日志可能会被转移到新的存储介质中,用于备份恢复。
- PGA(Program Global Area)区,这是一块开辟出来的内存区,和SGA最本质的区别在于,PGA是私有内存,不是共享内存。用户对数据库发起的无论是查询天鸿宝业是更新的任何操作,都是在PGA预处理,然后接下来才进入实例区域,由SGA和系列后台进行共同完成用户发起的请求。
PGA主要有三个作用
- 保存用户的连接信息,如会话属性、绑定变量等
- 保存用户权限等重要信息,当用户进程和数据库建立会话时,系统会将这个用户的相关权限查询出来,然后保存在这个会话区内
- 当发起指令需要排序时,如果内存中放得下排序的尺寸,就是在内存PGA区内完成,如果放不下,超出的部分就是在临时表空间中完成排序,也就是磁盘中完成排序。
- 用户请求发起经历的顺序一般如下:1区–>2区–>3区;或者1区–>2区。
递归调用、逻辑读、物理读
基础SQL解释
select object_name from t where object_id = 29;

当用户发出一条SQL指令后,SQL先从1区先做准备工作。该区域是仅供当前发起用户使用的私有空间。这里的连接主要是用户连接信息的保存和权限的存储,只有SESSION不断开连接,下次系统就不用再去硬盘中读取数据,而直接从PGA中获取。

该SQL还会立即匹配成一条唯一的HASH值,接下来SQL指令进入2区进行处理,首先会访问SGA区的共享池,该SQL会通过HASH值查找是否有相同的HASH值,如果没有,首先查询自己的语法是否正确(比如from是否写成form),语义是否正确(比如id字段根本就不存在)、是否有权限,这些都没有问题情况下,唯一的HASH值就被存储下来。
接下来开始解析,解析什么呢?
select object_name from t where object_id = 29;
这个语句, object_id列有索引的情况下,是索引读效率更高,还是全表扫描效率更高。Oralce的处理依据是,把两种方式都估算一遍,看哪个COST更低,就用哪种。
接下来这个索引读的计划就立即被存储,并且和之前的唯一HASH值对应在一起。接下来就去数据缓冲区去查询数据,如果没有