Oracle进阶学习3:SQL语句解析类型——硬解析和软解析
硬解析和软解析
Oracle数据信息全部存储在数据字典中,
Oracle的解析有两种,软解析以及硬解析
-
硬解析 hard parse 没有缓存进入硬解析
- 硬解析内容:语法错误,对象存不存在,用户是否有操作权限
- 硬解析在n种执行方案中找出最优的执行方案最消耗资源以及损耗时间
-
软解析 soft parse 有缓存
- SQL语句语法
- SQL所对应一些对象的权限满不满足
软硬解析的区别在于,软解析不必挑选最优方案
均要频繁访问数据字典信息(对象权限信息),所以oracle将数据字典信息放置到 share pool中跟library cache放置在一块
shared pool功能
shared pool 缓存SQL语句以及SQL语句的执行计划
- parse 解析
- excel 执行
- fetch 取回数据
shared pool组成
shared pool是一块内存池,内部被分成比较小的区块,
1. free部分 空闲部分
2. library cache 库缓存,保存的是SQL语句以及SQL语句的执行计划
3. row cache 缓存数据字典信息
SQL语句
查看各个内存块的大小
-
library cache
select * from v$sgastat a where a.Name='library cache
-
free memory
select * from v$sgastat a where a.pool='shared pool'and a.name='free memory';
-
row cache
select * from v$sgastat a where a.Name='row cache';
SQL
select name,value from v$sysstat where name like 'parse%';