Oracle进阶学习3:SQL语句解析类型——硬解析和软解析

文章目录

      • 硬解析和软解析
      • shared pool功能
      • shared pool组成
      • SQL语句

硬解析和软解析

Oracle数据信息全部存储在数据字典中,

Oracle的解析有两种,软解析以及硬解析

  • 硬解析 hard parse 没有缓存进入硬解析

    • 硬解析内容:语法错误,对象存不存在,用户是否有操作权限
    • 硬解析在n种执行方案中找出最优的执行方案最消耗资源以及损耗时间
  • 软解析 soft parse 有缓存

    • SQL语句语法
    • SQL所对应一些对象的权限满不满足

软硬解析的区别在于,软解析不必挑选最优方案
均要频繁访问数据字典信息(对象权限信息),所以oracle将数据字典信息放置到 share pool中跟library cache放置在一块

shared pool功能

shared pool 缓存SQL语句以及SQL语句的执行计划

  1. parse 解析
  2. excel 执行
  3. fetch 取回数据

shared pool组成

shared pool是一块内存池,内部被分成比较小的区块,
1. free部分 空闲部分
2. library cache 库缓存,保存的是SQL语句以及SQL语句的执行计划
3. row cache 缓存数据字典信息

SQL语句

查看各个内存块的大小

  1. library cache

    select * from v$sgastat a where a.Name='library cache

  2. free memory
    select * from v$sgastat a where a.pool='shared pool'and a.name='free memory';

  3. row cache
    select * from v$sgastat a where a.Name='row cache';

SQL

select name,value from v$sysstat where name like 'parse%';
Oracle进阶学习3:SQL语句解析类型——硬解析和软解析_第1张图片

你可能感兴趣的:(数据库)