Oracle基础核心知识

角色定位

给自己定位,合理地在自己的岗位上分配时间与精力

攻取知识途径

  • 官方文档, CONCEPT需要反复阅读
  • 导师培训
  • 相关书籍
  • 搜索总结

数据库和Excel的本质区别是,数据库具有事务的概念。

数据库应该根据人群的不同可分为:数据库开发、数据库管理
数据库优化、数据库设计。

  • 开发:数据库增删改查;pl/sql实现各种逻辑
  • 管理:完成数据库安装、部署、参数调试、备份和恢复、数据迁移等相关工作

Oracle 体系结构图

  1. Oracle由实例instance和数据库Dababase组成
  2. 实例由一个开辟的内存区域SGA加一系后台进行组成,其中SGA最主要是被划分为共享池 (Share pool)、 数据缓冲区(db cache)和日志缓冲区(log buffer)三类。后台进程包括PMON、SMON、LCKn、CKPT、DBWR、LGWR、ARCH等系列进程。
  3. 数据库是由数据文件、参数文件、日志文件、控制文件、归档日志等系列文件组成,归档日志可能会被转移到新的存储介质中,用于备份恢复。
  4. PGA(Program Global Area)区,这是一块开辟出来的内存区,和SGA最本质的区别在于,PGA是私有内存,不是共享内存。用户对数据库发起的无论是查询天鸿宝业是更新的任何操作,都是在PGA预处理,然后接下来才进入实例区域,由SGA和系列后台进行共同完成用户发起的请求。

PGA主要有三个作用

  1. 保存用户的连接信息,如会话属性、绑定变量等
  2. 保存用户权限等重要信息,当用户进程和数据库建立会话时,系统会将这个用户的相关权限查询出来,然后保存在这个会话区内
  3. 当发起指令需要排序时,如果内存中放得下排序的尺寸,就是在内存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值对应在一起。接下来就去数据缓冲区去查询数据,如果没有

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值